追加上传是指通过AppendObject方法在已上传的追加类型文件(Appendable Object)末尾直接追加内容。
使用限制
通过追加上传的方式上传文件时,有如下限制:
- 如果文件不存在,则调用AppendObject接口会创建一个可追加类型的文件。
- 如果文件已存在,且为可追加类型文件时,若设置的追加位置和文件当前长度不等,则抛出PositionNotEqualToLength异常。如果文件已存在,且为不可追加类型文件时,则抛出ObjectNotAppendable异常。
- 追加类型的文件暂不支持CopyObject操作。
有关追加上传的更多信息,请参见AppendObject。
示例代码
以下代码用于追加上传:
let OSS = require('ali-oss')
let client = new OSS({
// region以杭州为例(oss-cn-hangzhou),其他region按实际情况填写。
region: '<Your region>',
// 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。
accessKeyId: '<Your AccessKeyId>',
accessKeySecret: '<Your AccessKeySecret>',
// 目标Bucket名称。
bucket: '<Your bucket name>',
});
async function append () {
// 第一次追加上传。返回值为下一次追加的位置。
// object-name表示不包含Bucket名称在内的Object的完整路径,例如destfolder/examplefile.txt。
// local-file填写包含后缀在内的本地文件完整路径,例如/users/local/examplefile.txt。
let result = await client.append('object-name', 'local-file')
// 第二次追加。后续追加的位置(position)是追加前文件的长度(Content-Length)。
result = await client.append('object-name', 'local-file', {
position: result.nextAppendPosition
})
}
append();
有关Bucket命名规范的详情,请参见存储空间(Bucket)。有关Object命名规范的详情,请参见对象(Object)。
在文档使用中是否遇到以下问题
更多建议
匿名提交