UNPKG

parallel-file-uploader

Version:

高性能并行文件上传工具,支持大文件分片上传、断点续传、Web Worker多线程处理

96 lines 2.19 kB
import { FileInfo, UploadStepEnum } from '../type'; /** * 持久化的文件信息(不包含File对象) */ interface PersistedFileInfo { fileId: string; fileName: string; fileSize: number; uploadedSize: number; progress: number; status: UploadStepEnum; mimeType?: string; lastUpdated?: number; totalChunks?: number; uploadInfo?: { parts?: Array<{ etag: string; partNumber: number; partSize?: number; }>; md5?: string; [key: string]: any; }; } /** * 队列持久化管理器 * 将上传队列状态保存到localStorage,支持浏览器刷新后恢复 */ export declare class QueuePersistence { private enabled; private storageKey; private chunkStorageKey; constructor(enabled?: boolean, storageKey?: string); /** * 启用/禁用持久化 */ setEnabled(enabled: boolean): void; /** * 检查是否启用 */ isEnabled(): boolean; /** * 检查localStorage是否可用 */ private isStorageAvailable; /** * 保存文件队列状态 */ saveQueue(files: FileInfo[]): void; /** * 保存分片状态 */ saveChunkStatus(fileId: string, uploadedChunks: Set<number>, pendingChunks: Set<number>): void; /** * 加载文件队列状态 */ loadQueue(): PersistedFileInfo[]; /** * 加载分片状态 */ loadChunkStatus(fileId: string): { uploaded: number[]; pending: number[]; } | null; /** * 加载所有分片状态 */ private loadAllChunkStatus; /** * 移除指定文件的记录 */ removeFile(fileId: string): void; /** * 移除分片状态 */ private removeChunkStatus; /** * 清除所有持久化数据 */ clearAll(): void; /** * 清理过期数据 */ cleanupExpiredData(): void; /** * 获取存储使用情况 */ getStorageInfo(): { queueSize: number; chunkSize: number; totalSize: number; estimatedQuota: number; }; } export {}; //# sourceMappingURL=QueuePersistence.d.ts.map