本文介绍如何将数据流以流式上传的方式上传到存储空间(Bucket)中的文件(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('examplebuck')
# my-object填写Object完整路径,完整路径中不能包含Bucket名称。
bucket.put_object('my-object') do |stream|
  100.times { |i| stream << i.to_s }
end