parallel-file-uploader
Version:
高性能并行文件上传工具,支持大文件分片上传、断点续传、Web Worker多线程处理
82 lines • 2.2 kB
TypeScript
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