@mt-utils/huawei-obs
Version:
华为云OBS文件上传下载
130 lines (129 loc) • 2.67 kB
TypeScript
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 };