/// import { Got, Method, Request } from 'got'; import { Readable } from 'stream'; import { EnumStorageClass } from './constant.js'; import { IFinishMultipartUploadRes, IGetMultiUploadIdRes, IHeadFileRes, IInitiateMultipartUploadRes, IListObjectsRes, IOptions, IPrefixFileListRes, IUploadPartRes } from './type.js'; export declare class UFile { readonly got: Got; private readonly pubKey; private readonly priKey; private readonly bucketName; private readonly domain; private readonly scheme; /** * UFile SDK * @param options */ constructor(options: IOptions); /** * 前缀列表查询 * @param {string} [prefix=''] 前缀,utf-8编码,默认为空字符串 * @param {string} [marker=''] 标志字符串,utf-8编码,默认为空字符串 * @param {number} [limit=20] 文件列表数目,默认为20 * @returns {Promise} */ prefixFileList(prefix?: string, marker?: string, limit?: number): Promise; /** * 上传文件 * @param {string} key * @param {Buffer|Stream.Readable|string} file 文件 * @param {string} [mimeType='application/octet-stream'] 文件类型 * @returns {Promise} */ putFile(key: string, file: Buffer | Readable | string, mimeType?: string): Promise; /** * 上传本地文件 * @param {string} key * @param {string} path 文件路径 * @param {string} [mimeType='application/octet-stream'] 文件类型 * @returns {Promise} */ uploadFile(key: string, path: string, mimeType?: string): Promise; /** * 秒传文件 * @param {string} hash 待上传文件的ETag,详见ETag生成文档 * @param {string} fileName Bucket中文件的名称 * @param {string} fileSize 待上传文件的大小 * @returns {Promise} */ uploadHit(hash: string, fileName: string, fileSize: string): Promise; /** * 下载文件 * @param {string} key key * @param {string} [range] 分片下载的文件范围 * @param {string} [ifModifiedSince] 只返回从某时修改过的文件,否则返回304(not modified) * @returns {Promise} */ getFile(key: string, range?: string, ifModifiedSince?: string): Promise; /** * 下载文件 * @param {string} key key * @param {string} [range] 分片下载的文件范围 * @param {string} [ifModifiedSince] 只返回从某时修改过的文件,否则返回304(not modified) * @returns {Promise} */ getFileStream(key: string, range?: string, ifModifiedSince?: string): Request; /** * 查询文件基本信息 * @param {string} key * @returns {Promise} */ headFile(key: string): Promise; /** * 获取目录文件列表 * @param prefix * @param marker * @param maxKeys * @param delimiter */ listObjects(prefix: string, marker?: string, maxKeys?: number, delimiter?: string): Promise; /** * 删除文件 * @param {string} key * @returns {Promise} */ deleteFile(key: string): Promise; /** * 初始化分片上传 * @param {string} key 文件名 * @returns {Promise} */ initiateMultipartUpload(key: string): Promise; /** * 上传分片 * @param {string} key 文件名 * @param {string} uploadId 分片id * @param {number} partNumber 第几块分片 * @param {buffer} buffer 内容 * @returns {Promise} */ uploadPart(key: string, uploadId: string, partNumber: number, buffer: Buffer): Promise; /** * 完成分片 * @param {string} key 文件名 * @param {string} uploadId 分片id * @param {array} parts 分片的etag们 * @param {string} [newKey] 等上传完毕开始指定的key可能已经被占用,遇到这种情形时会采用newKey参数的值作为文件最终的key,否则仍然采用原来的key * @returns {Promise} */ finishMultipartUpload(key: string, uploadId: string, parts?: string[], newKey?: string): Promise; /** * 放弃分片 * @param {string} key 文件名 * @param {string} uploadId 分片id * @returns {Promise} */ abortMultipartUpload(key: string, uploadId: string): Promise; /** * 获取正在执行的分片上传 * @param {string} [prefix] 前缀,utf-8编码,默认为空字符串 * @param {string} [marker] 标志字符串,utf-8编码,默认为空字符串 * @param {number} [limit=20] id列表数目,默认为20 * @returns {Promise} */ getMultiUploadId(prefix: string, marker: string, limit?: number): Promise; /** * 文件存储类型转换 * @param key * @param storageClass */ classSwitch(key: string, storageClass: EnumStorageClass): Promise; /** * 解冻文件 * @param key */ restore(key: string): Promise; /** * 等待解冻完成 * @param key * @param interval 重试间隔 * @param maxRetry 重试次数 */ waitForRestore(key: string, interval?: number, maxRetry?: number): Promise; /** * 判断是否需要解冻 * @param key */ isNeedRestore(key: string): Promise; /** * 操作文件的Meta信息 * @param {string} key key * @param {string} mimeType 文件的mimetype * @returns {Promise} */ opMeta(key: string, mimeType: string): Promise; getAuthorization(method: Method, key: string, contentMd5?: string, contentType?: string): string; private sign; } export * from './constant.js'; export * from './type.js';