范围下载
范围下载可以下载文件中的部分数据。通常来说,范围下载的上限与下限为(0, <文件大小>),但可以通过设置HTTP头来规定兼容行为范围下载。
import oss
# 设置基本信息
APIKey = '<your_API_key>'
APIKeySecrete = '<your_API_key_secrete>'
EndPoint = 'oss.cn-north-3.inspurcloudoss.com'
BucketName = '<your_bucket_name>'
# <your_object_name>需包含目录及文件名后缀,如:“img/my_photo.png”
ObjectName = '<your_object_name>'
# <your_local_file_path>为绝对路径,需包含文件后缀名,若无此文件则创建新文件。如:“D:/recv/file.txt”
LocalFilePath = '<your_local_file_path>'
# 使用API密钥来获取管理权限,获得方式在控制台右上角用户头像->API密钥
auth = oss.Auth(APIKey, APIKeySecrete)
# 使用密钥, 节点来初始化储存信息,这里以华北三
bucket = oss.Bucket(auth, EndPoint, BucketName)
# 可以通过设置HTTP头使用兼容行为范围下载
# 当范围上限超过文件大小时,自动将范围缩小至文件大小
# 当范围下限超过文件大小时,系统会反馈ServerError,错误代码416
header = {'x-oss-range-behavior': 'standard'}
# 范围下载支持下载到内存(get_object)及下载到本地文件(get_object_to_file),这里以下载到本地文件为例
try:
bucket.get_object_to_file(ObjectName, LocalFilePath, byte_range=(0, 9999999), headers=header)
except oss.ServerError:
print("Download range out of boundary")