Skip to content
大纲

下载文件

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_lengthObject的大小
e_tagObject的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表示对象取回后的失效时间,此时间为格林尼治时间。