resume.d.ts 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import { UploadChunkData } from '../api';
  2. import * as utils from '../utils';
  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. /**
  28. * @description 文件的分片 chunks
  29. */
  30. private chunks;
  31. /**
  32. * @description 使用缓存的 chunks
  33. */
  34. private usedCacheList;
  35. /**
  36. * @description 来自缓存的上传信息
  37. */
  38. private cachedUploadedList;
  39. /**
  40. * @description 当前上传过程中已完成的上传信息
  41. */
  42. private uploadedList;
  43. /**
  44. * @description 当前上传片进度信息
  45. */
  46. private loaded;
  47. /**
  48. * @description 当前上传任务的 id
  49. */
  50. private uploadId;
  51. /**
  52. * @returns {Promise<ResponseSuccess<any>>}
  53. * @description 实现了 Base 的 run 接口,处理具体的分片上传事务,并抛出过程中的异常。
  54. */
  55. protected run(): Promise<utils.ResponseSuccess<any>>;
  56. private uploadChunk;
  57. private mkFileReq;
  58. private initBeforeUploadChunks;
  59. private getUploadInfo;
  60. private getLocalKey;
  61. private updateLocalCache;
  62. private updateChunkProgress;
  63. private updateMkFileProgress;
  64. private notifyResumeProgress;
  65. }