下载对象
get_object 操作可以获取对象数据,并且保存为本地文件。执行 get_object 操作必须对目标Object具有READ权限。以下代码展示如何下载一个对象:
def get_object(client, bucket_name, object_key, local_path)
client.get_object(
response_target: local_path,
bucket: bucket_name,
key: object_key
)
rescue StandardError => e
puts "Error getting object: #{e.message}"
end
get_object 可设置的部分参数如下:
参数 | 类型 | 说明 | 是否必要 |
---|---|---|---|
response_target | String, IO | 写入响应数据的位置,存入到文件或IO对象中。 | 是 |
bucket | String | 执行本操作的桶名称。 | 是 |
if_match | String | 用于指定只有在对象的ETag和该参数值匹配的情况下才返回对象数据,否则返回412错误码。 | 否 |
if_modified_since | Time, DateTime, Date, Integer, String | 用于只有当对象在指定时间后被修改的情况下才返回该对象,否则返回304错误码。 | 否 |
if_none_match | String | 用于指定只有在对象的ETag和该参数值不匹配的情况下才返回对象数据,否则返回304错误码 | 否 |
if_unmodified_since | Time, DateTime, Date, Integer, String | 用于仅当对象自指定时间以来未被修改的情况下才返回对象数据,否则返回412错误码。 | 否 |
key | String | 对象的key。 | 是 |
part_number | Integer | 读取对象指定的片段,该参数大于等于1,小于等于10000。 | 否 |
range | String | 下载对象指定范围内的数据(单位:字节),必须是"bytes=first-last"的格式,例如"bytes=0-9"表示前10字节的数据,详情请参见详情请参见RFC2616。 | 否 |
response_cache_control | String | 用于设置response的Cache-Control头部字段信息。 | 否 |
response_content_disposition | String | 用于设置response的Content-Disposition头部字段信息。 | 否 |
response_content_encoding | String | 用于设置response的Content-Encoding头部字段信息。 | 否 |
response_content_language | String | 用于设置response的Content-Language头部字段信息。 | 否 |
response_content_type | String | 用于设置response的Content-Type头部字段信息。 | 否 |
response_expires | Time, DateTime, Date, Integer, String | 用于设置response的Expires头部字段信息。 | 否 |
version_id | String | 当bucket开启版本控制的时候,用于指定获取指定版本的对象数据,当不指定该参数的时候,默认获取最新版本的对象数据。 | 否 |