UNPKG

@mt-utils/huawei-obs

Version:

华为云OBS文件上传下载

130 lines (129 loc) 2.67 kB
import { default as ObsError } from '../error'; /** * 华为云OBS平台系统配置接口 */ interface SystemConfig { /** * OBS为每个区域提供了一个Endpoint,用于处理该区域的访问请求。 */ readonly ENDPOINT: string; /** * 在华为云平台申请的密钥ID。 */ readonly ACCESS_KEY_ID: string; /** * 与ACCESS_KEY_ID对应的密钥信息。 */ readonly SECRET_ACCESS_KEY: string; /** * OBS桶的名称 */ readonly BUCKET_NAME: string; } /** * 上传事件回调 */ interface UploadEventCallback { /** * 上传开始的回调函数 */ onStart?(): void; /** * 上传进度回调 * @param event - 包含上传进度信息的对象 * @param event.percent - 上传进度百分比 */ onProgress?(event: { percent: number; }): void; /** * 上传完成回调 * @param event - 包含上传结果信息的对象 * @param event.sourceFile - 文件对象 * @param event.fileDir - 文件上传目录 */ onSuccess?(event: { sourceFile: File; fileDir: string; }): void; /** * 上传失败回调 * @param error - 错误对象,可能是标准 Error 对象或自定义 ObsError 对象 */ onError?(error: Error | ObsError): void; /** * 取消上传回调 */ onAbort?(): void; /** * 上传结束回调,无论成功或失败都会触发 */ onFinally?(): void; } /** * 分片上传选项接口 */ interface SliceUploadOptions extends UploadEventCallback { /** * OBS桶的名称。 */ bucketName: string; /** * 要上传的文件。 */ sourceFile: File; /** * 文件分片大小,单位为字节。 * 默认为5MB。 */ partSize?: number; /** * 文件上传目录。 * 默认为根目录。 */ fileDir?: string; } /** * 文件分片参数 */ interface SliceUploadFilePart { /** * 分片索引 */ index: number; /** * 分片大小 */ size: number; /** * 分片的偏移量 */ offset: number; } /** * 文件上传状态 */ declare enum FileUploadStatusEnum { /** * 准备就绪 */ READY = "ready", /** * 上传中 */ UPLOADING = "uploading", /** * 上传完成 */ SUCCESS = "success", /** * 上传失败 */ ERROR = "error", /** * 取消上传 */ ABORT = "abort" } export type { SystemConfig, SliceUploadOptions, SliceUploadFilePart, UploadEventCallback }; export { FileUploadStatusEnum };