上传对象
您可以使用 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”。 | 否 |