最近更新时间:2024-04-09 20:18:24
uploadFile方法会在上传过程中,通过传入参数sliceSize自动根据文件大小选择是采用简单上传还是分片上传,并且在上传过程中可以主动暂停或者重新上传。该方法无需手动构造上传过程,并支持续传/重传,在上传文件时推荐使用。
ks3.uploadFile({
bucket: 'bucket-name', // 存储桶
region: 'beijing', // 存储桶所在地域,例如 beijing
key: '1.jpg', // 桶里的对象键(例如 test.txt),必须
sliceSize: 1024 * 1024 * 5, // 触发分块上传的阈值,非必须,默认超过 10MB 选择分片上传
onTaskReady: function(taskId) {
// taskId可用来取消上传ks3.cancelTask(taskId)、停止上传ks3.pauseTask(taskId)、重新上传ks3.restartTask(taskId)
console.log(taskId);
},
onProgress: function (progressData) { // 上传过程中的进度回调,非必需
console.log(JSON.stringify(progressData));
}
}, function(err, data) {
console.log(err || data);
});
参数名 | 参数描述 | 类型 | 是否必填 |
---|---|---|---|
bucket | 桶名称,若初始化的config配置参数填写bucket,此处可忽略不填写;若此处填写,则以此处填写的bucket为主 | String | 否 |
region | Region名称,若初始化的config配置参数填写region,此处可忽略不填写;若此处填写,则以此处填写的region为主 | String | 否 |
key | 对象Key | String | 是 |
acl | 文件预设ACL(private | public-read),默认值private | String | 否 |
body | 上传的文件 | Stream/Buffer/String | 是 |
encryption | 是否使用服务端加密文件 | Boolean | 否 |
storageClass | 对象的存储类型,如果Bucket是归档类型,当不指定storageClass时,Object自动为归档类型,如果Bucket是非归档类型,Object自动为标准类型 | String | 否 |
sliceSize | 触发分块上传的阈值,默认超过10MB选择分片上传 | Number | 否 |
headers | 自定义Header信息 | Object | 否 |
onProgress | 上传文件的进度回调函数,回调参数为一个progressData: -loaded:已经上传的文件大小(Bytes) -total:整个文件大小 -speed:上传速度,字节/秒(Bytes/s) -percent:上传进度百分比 | Function | 否 |
onTaskReady | 上传任务创建时的回调函数,每个上传任务都存在一个唯一taskId,可以通过该Id进行中断/暂停/重试任务等操作 | Function | 否 |
putUploadFile简单上传与putObject简单上传功能几乎一致,但是通过putUploadFile进行简单上传时,可以通过任务Id中断上传过程。
ks3.putUploadFile({
bucket: 'bucket-name', // 存储桶
region: 'beijing', // 存储桶所在地域,例如 beijing
key: '1.jpg', // 桶里的对象键(例如 test.txt),必须
onTaskReady: function(taskId) {
// taskId可用来取消上传ks3.cancelTask(taskId)、停止上传ks3.pauseTask(taskId)、重新上传ks3.restartTask(taskId)
console.log(taskId);
},
onProgress: function (progressData) { // 上传过程中的进度回调,非必需
console.log(JSON.stringify(progressData));
}
}, function(err, data) {
console.log(err || data);
});
参数名 | 参数描述 | 类型 | 是否必填 |
bucket | 桶名称,若初始化的config配置参数填写bucket,此处可忽略不填写;若此处填写,则以此处填写的bucket为主 | String | 否 |
region | Region名称,若初始化的config配置参数填写region,此处可忽略不填写;若此处填写,则以此处填写的region为主 | String | 否 |
key | 对象Key | String | 是 |
acl | 文件预设ACL(private | public-read),默认值private | String | 否 |
body | 上传的文件 | Stream/Buffer/String | 是 |
encryption | 是否使用服务端加密文件 | Boolean | 否 |
storageClass | 对象的存储类型,如果Bucket是归档类型,当不指定storageClass时,Object自动为归档类型,如果Bucket是非归档类型,Object自动为标准类型 | String | 否 |
headers | 自定义Header信息 | Object | 否 |
onProgress | 上传文件的进度回调函数,回调参数为一个progressData: -loaded:已经上传的文件大小(Bytes) -total: 整个文件大小 -speed:上传速度,字节/秒(Bytes/s) -percent:上传进度百分比 | Function | 否 |
onTaskReady | 上传任务创建时的回调函数,每个上传任务都存在一个唯一taskId,可以通过该Id进行中断/暂停/重试任务等操作 | Function | 否 |
sliceUploadFile相比uploadPart支持在上传大文件过程中进行续传和重试。
ks3.sliceUploadFile({
bucket: 'bucket-name', // 存储桶
region: 'beijing', // 存储桶所在地域,例如 beijing
key: '1.jpg', // 桶里的对象键(例如 test.txt),必须
onTaskReady: function(taskId) {
// taskId可用来取消上传ks3.cancelTask(taskId)、停止上传ks3.pauseTask(taskId)、重新上传ks3.restartTask(taskId)
console.log(taskId);
},
onProgress: function (progressData) { // 上传过程中的进度回调,非必需
console.log(JSON.stringify(progressData));
}
}, function(err, data) {
console.log(err || data);
});
参数名 | 参数描述 | 类型 | 是否必填 |
bucket | 桶名称,若初始化的config配置参数填写bucket,此处可忽略不填写;若此处填写,则以此处填写的bucket为主 | String | 否 |
region | Region名称,若初始化的config配置参数填写region,此处可忽略不填写;若此处填写,则以此处填写的region为主 | String | 否 |
key | 对象Key | String | 是 |
acl | 文件预设ACL(private | public-read),默认值private | String | 否 |
body | 上传的文件 | Stream/Buffer/String | 是 |
encryption | 是否使用服务端加密文件 | Boolean | 否 |
storageClass | 对象的存储类型,如果Bucket是归档类型,当不指定storageClass时,Object自动为归档类型,如果Bucket是非归档类型,Object自动为标准类型 | String | 否 |
chunkSize | 分块上传的最小单位,默认5MB,会根据文件大小动态调整 | Number | 否 |
headers | 自定义Header信息 | Object | 否 |
onProgress | 上传文件的进度回调函数,回调参数为一个progressData: -loaded:已经上传的文件大小(Bytes) -total:整个文件大小 -speed:上传速度,字节/秒(Bytes/s) -percent:上传进度百分比 | Function | 否 |
onTaskReady | 上传任务创建时的回调函数,每个上传任务都存在一个唯一taskId,可以通过该Id进行中断/暂停/重试任务等操作 | Function | 否 |
通过调用JS SDK的uploadFile、putUploadFile、sliceUploadFile发起的上传任务,都会记录在任务队列中,并且存在唯一的taskId。
获取上传任务队列:const taskList = ks3.getTaskList()
监听任务列表变化:ks3.on('list-update', callback),当任务队列中进度、状态、数量等发生变化时会触发 'list-update' 事件
const taskList = ks3.getTaskList() // 获取上传任务队列
ks3.on('list-update', callback) // 监听任务列表变化
通过taskId暂停上传任务后,可通过ks3.restartTask(taskId) 重新上传,如果是分块上传任务将自动进行续传。(taskId可通过上传回调方法onTaskReady获取,或者通过上传任务队列获取)。
使用示例
ks3.restartTask(taskId)
通过taskId取消上传任务。
使用示例
ks3.cancelTask(taskId)
纯净模式