vodpro-upload-js-sdk
Version:
Tencent Cloud VOD Pro Upload SDK
93 lines (92 loc) • 3.33 kB
TypeScript
/** 加速域名的类型 */
export declare enum UploadMode {
/** 子应用级别的加速域名, 开发者无需感知存储桶和地域分布, SDK自动调度(支持多存储桶),子应用存在多个存储桶时文件可能会被上传到不同的存储桶*/
auto = 0,
/** 子应用级别的加速域名, 开发者需要指定上传存储桶和地域, SDK会将文件上传到指定的存储桶和地域*/
subApp = 1,
/** 桶级别的加速域名, 开发者需要指定上传存储桶和地域, SDK会将文件上传到指定的存储桶和地域 */
bucket = 2
}
export interface SignatureParams {
accessKeyId: string;
secretAccessKey: string;
sessionToken: string;
/** 建议返回服务器时间作为签名的开始时间,避免用户浏览器本地时间偏差过大导致签名错误 */
startTime: number /** 时间戳,单位秒,如:1580000000 */;
expiredTime: number /** 时间戳,单位秒,如:1580000000 */;
/**
* 存储桶id
* ----------------------------
* uploadMode | bucketId是否必传
* ----------------------------
* auto | 否
* ----------------------------
* subApp | 是
* ----------------------------
* bucket | 是
* ----------------------------
*/
bucketId?: string;
/**
* 子应用id
* -----------------------------
* uploadMode | subAppId是否必传
* -----------------------------
* auto | 是
* -----------------------------
* subApp | 是
* -----------------------------
* bucket | 否
* -----------------------------
*/
subAppId?: number;
/**
* 存储地域, 例如ap-chongqing, ap-beijing
* -----------------------------
* uploadMode | region是否比传
* -----------------------------
* auto | 否
* -----------------------------
* subApp | 是
* -----------------------------
* bucket | 是
* -----------------------------
*/
region?: string;
uploadMode: UploadMode /** 加速域名的类型 */;
}
export interface ProgressInfo {
/** 已上传/下载的字节数,单位 B(字节) */
loaded: number;
/** 要上传/下载的文件的大小,单位 B(字节) */
total: number;
/** 速度,单位 B/s */
speed: number;
/** 进度百分比,范围是 0-1,保留两位小数 */
percent: number;
}
/**
*
* @param key 存储在桶里的对象键(例如1.jpg,a/b/test.txt)
* @param region 存储桶所在地域 ,例如 ap-chongqing, ap-beijing
* @param body 上传文件的内容,可以为 File 对象或者 Blob 对象
* @param header 用户透传的http header
* @param chunkSize 分块大小,如传入1048576代表分块大小为1MB
* @param asyncLimit 分块的并发量
* @param onProgress 上传文件的进度回调函数
* @param onError 错误回调
* @param onFinish 上传完成回调
* @param onTaskId 任务id回调
*/
export interface UploadFileOptions {
key: string;
region?: string;
body: File;
header?: Object;
chunkSize?: number;
asyncLimit?: number;
onProgress?: Function;
onError?: Function;
onFinish?: Function;
onTaskId?: Function;
}