使用说明
- 下载US3文件并且保存为本地文件。
- 可以从 Object 指定的位置开始下载,在下载大的 Object 的时候,可以分多次下载。
函数说明
download_file
(bucket, key, localfile, isprivate=True, expires=None, content_range=None, header=None)
下载UFile文件并且保存为本地文件
Parameters
- bucket – string类型, UFile空间名称
- key – string类型, 下载文件在空间中的名称
- localfile – string类型,要保存的本地文件名称
- isprivate – boolean类型,如果为私有空间则为True
- expires – integer类型,私有文件链接有效时间
- content_range – tuple类型,元素为两个整型
- header – dict类型,http 请求header,键值对类型分别为string,比如{'User-Agent': 'Google Chrome'}
Returns
- ret: 如果http状态码为[200, 204, 206]之一则返回None,否则如果服务器返回json信息则返回dict类型,键值对类型分别为string, unicode string类型,否则返回空的dict
- ResponseInfo: 响应的具体信息,UCloud UFile 服务器返回信息或者网络链接异常
代码示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
public_key = '' #账户公钥
private_key = '' #账户私钥
public_bucket = '' #公共空间名称
private_bucket = '' #私有空间名称
public_savefile = '' #保存文件名
private_savefile = '' #保存文件名
range_savefile = '' #保存文件名
put_key = '' #文件在空间中的名称
# 设置上传host后缀,外网可用后缀形如 .cn-bj.ufileos.com(cn-bj为北京地区,其他地区具体后缀可见控制台:对象存储-单地域空间管理-存储空间域名)
# 默认值为'.cn-bj.ufileos.com',如果上传文件的bucket所在地域不在北京,请务必设置此项
upload_suffix = 'YOUR_UPLOAD_SUFFIX'
# 设置下载host后缀,普通下载后缀即上传后缀,CDN下载后缀为 .ufile.ucloud.com.cn
download_suffix = 'YOUR_DOWNLOAD_SUFFIX'
from ufile import filemanager
downloadufile_handler = filemanager.FileManager(public_key, private_key, upload_suffix, download_suffix)
# 从公共空间下载文件
ret, resp = downloadufile_handler.download_file(public_bucket, put_key, public_savefile, isprivate=False)
assert resp.status_code == 200
# 从私有空间下载文件
ret, resp = downloadufile_handler.download_file(private_bucket, put_key, private_savefile)
assert resp.status_code == 200
# 下载包含文件范围请求的文件
ret, resp = downloadufile_handler.download_file(public_bucket, put_key, range_savefile, isprivate=False, expires=300, content_range=(0, 15))
assert resp.status_code == 206
# 从所在region为上海二的私有空间下载文件
SH2_bucket = ''
SH2_put_key = ''
SH2_private_savefile = ''
SH2_DOWNLOAD_SUFFIX = '.cn-sh2.ufileos.com'
filemgr_sh = filemanager.FileManager(public_key, private_key, download_suffix=SH2_DOWNLOAD_SUFFIX )
ret, resp = filemgr_sh.download_file(SH2_bucket, SH2_put_key, SH2_private_savefile)
assert resp.status_code == 200
- HTTP 返回状态码
状态码 | 描述 |
---|---|
200 | 文件或者数据下载成功 |
206 | 文件或者数据范围下载成功 |
400 | 不存在的空间 |
403 | API公私钥错误 |
401 | 下载签名错误 |
404 | 下载文件或数据不存在 |
416 | 文件范围请求不合法 |