import * as utils from '../utils'; import { UploadChunkData } from '../api'; import Base, { Extra } from './base'; export interface UploadedChunkStorage extends UploadChunkData { size: number; } export interface ChunkLoaded { mkFileProgress: 0 | 1; chunks: number[]; } export interface ChunkInfo { chunk: Blob; index: number; } export interface LocalInfo { data: UploadedChunkStorage[]; id: string; } export interface ChunkPart { etag: string; partNumber: number; } export interface UploadChunkBody extends Extra { parts: ChunkPart[]; } export default class Resume extends Base { private chunks; /** 当前上传过程中已完成的上传信息 */ private uploadedList; /** 当前上传片进度信息 */ private loaded; private uploadId; /** * @returns {Promise>} * @description 实现了 Base 的 run 接口,处理具体的分片上传事务,并抛出过程中的异常。 */ protected run(): Promise>; private uploadChunk; private mkFileReq; private initBeforeUploadChunks; private getUploadInfo; private getLocalKey; private updateChunkProgress; private updateMkFileProgress; private notifyResumeProgress; }