UNPKG

xframelib

Version:

积累的前端开发基础库,来源于项目和服务于项目。

118 lines (117 loc) 2.78 kB
/** * 下载文件信息模型 */ export interface IFileMeta { id?: string; name: string; length: number; downloadID: string; chunkSize?: number; } /** * 文件下载事件 */ export type FileDownloadEvent = 'init' | 'info' | 'error' | 'downloadProgress' | 'saveProgress' | 'success'; /** * 大文件分片/断点续传下载 */ export declare class BigFileDownload { private fileID; private downloadURL?; ChunkUnitM: number; private chunkByteSize; private totalChunks; private currentDB?; private keys?; private fileMetaData; private finishNum; private eventTarget; private cancelSource; private isStarting; private fileName?; private cacheSize; private requestTimeout; /** * * @param fileID * @param downloadURL 下载链接(可空) * @param chunkSizeM 分片大小,默认为3M * @param cacheNum 缓存大小 * @param requestTimeoutMS 请求超时时间(毫秒)默认为60s */ constructor(fileID: string, downloadURL?: string | undefined, chunkSizeM?: number, cacheNum?: number, requestTimeoutMS?: number); /** * 订阅事件 */ on(eventName: FileDownloadEvent, fn: (event: any) => void): void; /** * 发送消息 */ private dispatch; /** * 抛出异常信息 * @param data 异常描述 */ private dispatchError; /** * 推送文字进度 * @param data 文字消息 */ private dispatchInfo; /** * Get请求获取文件元数据信息 * @param baseURL 根URL路径 * @param apiPath 方法路径 * @param queryParams 请求参数 * @returns IFileMeta */ queryDownloadFileMeta(baseURL: string, apiPath?: string, queryParams?: any): Promise<IFileMeta | null>; /** *获取本地的File元数据信息 */ getIFileMeta(): Promise<IFileMeta | null>; /** * 初始化信息 */ private initIndexDB; /** * 初始化要下载的文件元数据 * @param url 下载路径 * @returns */ init(fileMeta: IFileMeta): Promise<void>; /** * 获取分片大小 * @returns */ getTotalChunks(): number; /** * 暂停下载 */ pause(): void; /** * 重新开始 */ restart(): void; /** * 删除下载任务 */ delete(): void; sleep(ms: any): Promise<unknown>; /** * 开始分段下载 */ download(downloadAPI?: string, baseURL?: string, _params?: any): Promise<void>; /** * 下载完成进度 */ private downloadProgress; /** * 输出保存文件进度-分片统计 */ private outputProgress; /** * 保存文件 */ private savefile; }