追加上传是指通过AppendObject方法在已上传的追加类型文件(Appendable Object)末尾直接追加内容。
通过Bucket#append_object
来上传可追加的文件。调用该接口时需要指定文件追加的position,首次追加操作的position必须为0,后续追加操作的position是Object的当前大小。
- 文件不存在时,调用
append_object
会创建一个可追加的文件。 - 文件存在时,调用
append_object
会向文件末尾追加内容。
示例代码
以下代码用于追加上传。
require 'aliyun/oss'
client = Aliyun::OSS::Client.new(
# Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。
endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
# 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')
# 填写Bucket名称,例如examplebucket。
bucket = client.get_bucket('examplebucket')
# my-object填写Object完整路径,完整路径中不能包含Bucket名称。
bucket.append_object('my-object', 0)
# 向文件末尾追加内容。
next_pos = bucket.append_object('my-object', 0) do |stream|
100.times { |i| stream << i.to_s }
end
next_pos = bucket.append_object('my-object', next_pos, :file => 'local-file-1')
next_pos = bucket.append_object('my-object', next_pos, :file => 'local-file-2')
说明
- 只能向Appendable类型的Object追加内容。
- 不支持对Appendable类型的Object进行拷贝。
相关文档
关于追加上传的API接口说明,请参见AppendObject。