UNPKG

parallel-file-uploader

Version:

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

82 lines 2.2 kB
import { ChunkInfo, FileInfo, FilePartInfo } from '../type'; /** * 分片管理器 * 负责分片队列管理、断点续传、分片状态管理等 */ export declare class ChunkManager { private chunkQueue; private uploadedChunks; private pendingChunks; private chunkSize; constructor(chunkSize?: number); /** * 🔧 获取分片大小 */ getChunkSize(): number; /** * 准备分片队列 */ prepareChunkQueue(fileInfo: FileInfo): void; /** * 获取下一个待上传的分片 */ getNextChunk(fileId: string): ChunkInfo | undefined; /** * 获取待上传分片数量 */ getRemainingChunkCount(fileId: string): number; /** * 获取待处理分片数量 */ getPendingChunkCount(fileId: string): number; /** * 添加分片到待处理集合 */ addToPending(fileId: string, partNumber: number): void; /** * 从待处理集合移除分片 */ removeFromPending(fileId: string, partNumber: number): void; /** * 标记分片为已完成 */ markChunkCompleted(fileId: string, partNumber: number): void; /** * 重新加入分片到队列(用于重试) */ requeueChunk(fileId: string, chunkInfo: ChunkInfo): void; /** * 计算已上传大小 */ calculateUploadedSize(fileInfo: FileInfo): number; /** * 🔧 计算指定分片的预期大小 */ private calculateExpectedPartSize; /** * 🔧 验证和修复分片数据 */ private validateAndFixPartInfo; /** * 从已上传的分片恢复上传 - 🔧 增强兼容性版本 */ resumeFromExistingParts(fileInfo: FileInfo, existingParts: FilePartInfo[]): void; /** * 检查是否所有分片都已完成 */ isAllChunksCompleted(fileId: string): boolean; /** * 清理文件相关的分片数据 */ cleanup(fileId: string): void; /** * 获取分片统计信息 */ getChunkStats(fileId: string): { total: number; completed: number; pending: number; remaining: number; }; } //# sourceMappingURL=ChunkManager.d.ts.map