resume.d.ts 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import * as utils from '../utils';
  2. import { UploadChunkData } from '../api';
  3. import Base, { Extra } from './base';
  4. export interface UploadedChunkStorage extends UploadChunkData {
  5. size: number;
  6. }
  7. export interface ChunkLoaded {
  8. mkFileProgress: 0 | 1;
  9. chunks: number[];
  10. }
  11. export interface ChunkInfo {
  12. chunk: Blob;
  13. index: number;
  14. }
  15. export interface LocalInfo {
  16. data: UploadedChunkStorage[];
  17. id: string;
  18. }
  19. export interface ChunkPart {
  20. etag: string;
  21. partNumber: number;
  22. }
  23. export interface UploadChunkBody extends Extra {
  24. parts: ChunkPart[];
  25. }
  26. export default class Resume extends Base {
  27. private chunks;
  28. /** 当前上传过程中已完成的上传信息 */
  29. private uploadedList;
  30. /** 当前上传片进度信息 */
  31. private loaded;
  32. private uploadId;
  33. /**
  34. * @returns {Promise<ResponseSuccess<any>>}
  35. * @description 实现了 Base 的 run 接口,处理具体的分片上传事务,并抛出过程中的异常。
  36. */
  37. protected run(): Promise<utils.ResponseSuccess<any>>;
  38. private uploadChunk;
  39. private mkFileReq;
  40. private initBeforeUploadChunks;
  41. private getUploadInfo;
  42. private getLocalKey;
  43. private updateChunkProgress;
  44. private updateMkFileProgress;
  45. private notifyResumeProgress;
  46. }