全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

高级上传(JavaScript)

最近更新时间:2024-04-09 20:18:24

uploadFile高级上传

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 简单上传(支持中断)

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分片上传(支持续传)

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。

任务列表

  1. 获取上传任务队列:const taskList = ks3.getTaskList()

  2. 监听任务列表变化: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)

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈