import OSS from "ali-oss"; import S3 from "aws-sdk/clients/s3"; import {ApplyUploadRequest} from "../BackendServerModel"; import { UploadProgress, UploadResult } from "../Model"; import {CheckBucket} from "../StreamCache/CheckCache"; export default abstract class ICryptUploadTask { /** 代理地址 */ static proxyUrl: string | undefined; /** objectKey 前缀 */ abstract objectKeyPrefix: string; /** * 构造请求参数 * @param md5 * @param objectKeyPartial objectKey的前部分 “images/xx/xx/xx/” * @param file * @param region * @param bucket * @param fileExt */ abstract makeApplyUploadRequest(objectKeyPartial: string, file: string, region: string, bucket: string, fileExt: string, serverType: number): ApplyUploadRequest; /** * 根据具体类型,构造返回值 * @param mediaId media id * @param fileSize 原文件大小 * @param url 下载路径 * @param mark 上传的标识 */ abstract makeResult(mediaId: string, fileSize: number, mark: string, uploadRet: UploadResult[]): T; /** 构造上传任务 */ abstract makeUploadTask(client: S3 | OSS, bucket: string, objectKeyPartial: string, mediaId: string, file: string, fileExt: string, statusCp: CheckBucket | undefined, today: Date,_receive_proxy, _minor_receive_proxy, _bucket,allFileInfo, listener: (progress: UploadProgress) => void): Promise; }