上传对象

您可以使用 put_object 接口上传对象。如果对同一个对象同时发起多个上传请求,最后一次完成的请求将覆盖之前所有请求的上传的对象。PutObject操作可以上传最大不超过5GB的文件,超过5GB的文件可以通过分段上传操作上传到媒体存储服务,对象key的命名使用UTF-8编码,长度必须在1~1023字节之间,不能反斜线(\)开头。

以下代码展示如何上传一个对象:

def put_object(client, bucket_name, object_key, local_file)
  File.open(local_file, 'rb') do |file|
    client.put_object(
      bucket: bucket_name,
      key: object_key,
      body: file
    )
  end
  puts 'Object uploaded successfully'
rescue StandardError => e
  puts "Error uploading object: #{e.message}"
end

put_object 可设置的部分参数如下:

参数 类型 说明 是否必要
acl String 配置上传对象的canned ACL信息,例如private,public-read,public-read-write等。
body String, StringIO, File 对象的数据。
bucket String 执行本操作的桶名称。
content_length Integer 说明请求body的长度(单位:字节),该参数可以在body长度不能被自动识别的情况下设置。
content_md5 String base64编码的128位MD5值,不包含请求头部的信息
grant_full_control String 用于自定义用户对此对象的FULL_CONTROL权限信息。
grant_read String 用于自定义用户对此对象的READ权限信息。
grant_read_acp String 用于自定义用户对此对象的READ_ACP权限信息。
grant_write String 用于自定义用户对此对象的WRITE权限信息。
grant_write_acp String 用于自定义用户对此对象的WRITE_ACP权限信息。
key String 上传文件到媒体存储服务后对应的key。put_object操作支持将文件上传至文件夹,如需要将对象上传至"/folder"文件下,只需要设置Key="/folder/{exampleKey}“即可。
metadata Hash<String,String> 对象的元数据信息。
tagging String 对象的标签信息,必须是URL请求参数的形式。例如,“Key1=Value1”。