import { AnyAuthRequest } from '../../helper/interfaces'; import { AnyAuthGuard } from '../auth/auth.guard'; import { SavedFile } from '../storage'; import { OperationToken, OperationTokenRequest } from '../token'; import { RemoteFileInfo, UploaderService } from './service'; declare class CreateChunksUploadTaskQuery { readonly key: string; readonly filename: string; readonly totalChunks: number; } export declare class UploaderController { private readonly uploaderService; private context; constructor(uploaderService: UploaderService); /** * 创建 chunk 上传任务 * @param query * @param req */ createChunksUploadTask(query: CreateChunksUploadTaskQuery, req: AnyAuthRequest): Promise; /** * 流式上传 chunk * @param filename * @param chunk * @param req */ streamChunkedUploader(filename: string, chunk: string, req: AnyAuthRequest & OperationTokenRequest): Promise; /** * 基于 operation-token 上传 chunk * @param filename * @param chunk * @param req * @param file */ chunkedUploader(filename: string, chunk: number, req: AnyAuthRequest & OperationTokenRequest, file: any): Promise; /** * 合并 chunks * @param filename * @param req */ mergeChunks(filename: string, req: AnyAuthRequest & OperationTokenRequest): Promise; /** * 直接上传文件 * @param bucket * @param prefix * @param local 在某些可能需要同一个 server 执行任务时可能需要 * @param req * @param files */ uploader(bucket: string, prefix: string, local: string, // 是否使用本地存储 req: AnyAuthGuard, files: any): Promise; /** * 流式上传 */ streamUpload(bucket: string, prefix: string, filename: string, req: any): Promise; private saveFiles; } export {};