Appearance
下载文件
FOS Python SDK提供了丰富的文件下载接口,用户可以通过以下方式从FOS中下载文件:
- 简单流式下载
- 下载到本地文件
- 下载为字符串
- 范围下载
简单的读取Object
用户可以通过如下代码将Object读取到一个流中:
python
response = fos_client.get_object(bucket_name, object_key)
s = response.data
# 处理Object
...
# 关闭流
response.data.close()
直接下载Object到文件或字符串
用户可以参考如下代码将Object下载到指定文件:
python
fos_client.get_object_to_file(bucket_name, object_key, file_name)
用户可以参考如下代码将Object下载到字符串:
python
result = fos_client.get_object_as_string(bucket_name, object_key)
print(result)
范围下载
为了实现更多的功能,可以通过使用指定range参数来指定下载范围,实现更精细化地获取Object。如果指定的下载范围是0 - 100,则返回第0到第100个字节的数据,包括第100个,共101字节的数据,即[0, 1000]。
python
range = [0,1000]
#返回指定范围的Object数据
print(fos_client.get_object_as_string(bucket_name, object_key, range = range))
#返回指定范围的Object数据到文件中
fos_client.get_object_to_file(bucket_name, object_key, file_name, range = range)
通过get_object_as_string和get_object_to_file的range参数可以设置返回Object的范围。用户也可以用此功能实现文件的分段下载和断点续传。
其他使用方法
只获取ObjectMetadata
通过get_object_meta_data方法可以只获取Object的元数据,而非Object实体。如下代码所示:
python
response = fos_client.get_object_meta_data(bucket_name, object_key)
get_object_meta_data方法返回的解析类中可供调用的参数有:
参数 | 说明 |
---|---|
content_length | Object的大小 |
e_tag | Object的HTTP协议实体标签 |
ic_meta | 如果在PutObject指定了user_metadata自定义meta,则返回此项() |
ic_restore | 归档存储对象处于正在取回或已经取回时返回。对于正在取回的归档对象ic_restore取值为 ongoing-request="true";对于已取回的归档对象ic_restore取值为 ongoing-request="false", expiry-date="Wed, 07 Nov 2019 00:00:00 GMT"。其中expiry-date表示对象取回后的失效时间,此时间为格林尼治时间。 |