下载对象

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开启版本控制的时候,用于指定获取指定版本的对象数据,当不指定该参数的时候,默认获取最新版本的对象数据。