下载文件
更新时间:2022-10-14
BOS Ruby SDK提供了丰富的文件下载接口,用户可以通过以下方式从BOS中下载文件:
- 简单流式下载
- 下载到本地文件
- 断点续传下载
- 范围下载
简单流式下载
用户可以通过如下代码将Object读取到一个流中:
client.get_object_as_string(bucket_name, object_name)
直接下载Object到文件
用户可以参考如下代码将Object下载到指定文件:
client.get_object_to_file(bucket_name, object_name, file_name)
范围下载
为了实现更多的功能,可以通过配置RANGE
参数来指定下载范围,实现更精细化地获取Object。如果指定的下载范围是0 - 100,则返回第0到第100个字节的数据,包括第100个,共101字节的数据,即[0, 100]。RANGE
参数的格式为array(offset, endset)
其中两个变量为长整型,单位为字节。用户也可以用此功能实现文件的分段下载和断点续传。
range = [0,100]
client.get_object_as_string(bucket_name, object_name, range)
其他使用方法
获取Object的存储类型
Object的storage class属性分为STANDARD
(标准存储), STANDARD_IA
(低频存储)和COLD
(冷存储),通过如下代码可以实现:
response = client.get_object_meta_data(bucket_name, object_name)
puts response[Http::BOS_STORAGE_CLASS];
只获取ObjectMetadata
用户也可通过get_object_meta_data
方法可以只获取ObjectMetadata而不获取Object的实体。如下代码所示:
response = client.get_object_meta_data(bucket_name, object_name)
puts response['etag'];
get_object_meta_data
方法返回的解析类中可供调用的参数有:
参数 | 说明 |
---|---|
content-type | Object的类型 |
content-length | Object的大小 |
content-md5 | Object的MD5 |
etag | Object的HTTP协议实体标签 |
x-bce-storage-class | Object的存储类型 |
user-metadata | 如果在PutObject指定了userMetadata自定义meta,则返回此项 |