/** 文件缓冲区接口 */ export interface FileBuffer { /** 文件二进制内容 */ buffer: Buffer; /** 文件大小(字节) */ size: number; /** MIME类型 */ mimeType: string; /** 原始文件名 */ originalName: string; /** 文件编码 */ encoding?: string; /** 文件哈希值(SHA-256) */ hash?: string; /** 文件流(适用于大文件) */ stream?: NodeJS.ReadableStream; /** 分片信息(用于分片上传) */ chunk?: { index: number; total: number; size: number; start: number; end: number; }; /** 临时文件路径(用于大文件) */ tempPath?: string; /** 上传进度回调 */ onProgress?: (progress: UploadProgress) => void; } /** 上传进度 */ export interface UploadProgress { /** 已上传字节数 */ loaded: number; /** 总字节数 */ total: number; /** 上传百分比 */ percentage: number; /** 上传速度(字节/秒) */ speed: number; /** 剩余时间(秒) */ eta: number; /** 当前状态 */ status: 'uploading' | 'paused' | 'completed' | 'error'; /** 错误信息 */ error?: string; } /** 文件块 */ export interface FileChunk { /** 块索引 */ index: number; /** 块数据 */ data: Buffer; /** 块大小 */ size: number; /** 块哈希 */ hash?: string; /** 块在文件中的起始位置 */ offset: number; } /** 文件流选项 */ export interface FileStreamOptions { /** 分块大小 */ chunkSize?: number; /** 是否使用缓冲 */ useBuffer?: boolean; /** 缓冲区大小 */ bufferSize?: number; /** 是否自动清理临时文件 */ autoCleanup?: boolean; /** 临时文件目录 */ tempDir?: string; }