解冻归档文件

使用说明

  • 用于解冻归档类型的文件。
  • 解冻归档文件需要时间,一般在10s以内,所以归档文件解冻后不能立刻下载。
  • 如需下载归档文件,请在下载前使用前缀列表查询获取文件状态,若其返回值RestoreStatus为'Restored',则表示该归档文件已完成解冻。

函数说明

restore_file(bucket, key, header=None)

​ 解冻冷存文件方法

Parameters

  • bucket – string类型, 空间名称
  • key – string类型, 文件在空间中的名称
  • 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
public_key = ''                 #账户公钥
private_key = ''                #账户私钥

bucket = ''                     #空间名称
local_file = ''                 #本地文件名
put_key = ''                    #上传文件在空间中的名称
ARCHIVE = 'ARCHIVE'             #归档文件类型

# 设置上传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
import time

putufile_handler = filemanager.FileManager(public_key, private_key, upload_suffix, download_suffix)
restorefile_handler = filemanager.FileManager(public_key, private_key, upload_suffix, download_suffix)

# 普通上传归档类型的文件至空间
header = dict()
header['X-Ufile-Storage-Class'] = ARCHIVE
ret, resp = putufile_handler.putfile(bucket, put_key, local_file,  header=header)
assert resp.status_code == 200

# 解冻归档类型的文件
ret, resp = restorefile_handler.restore_file(bucket, put_key)
assert resp.status_code == 200

# 文件解冻一般在10s以内
time.sleep(10)

# 查看归档文件解冻状态
ret, resp = restorefile_handler.getfilelist(bucket, put_key)
assert resp.status_code == 200
print(ret['DataSet'][0]['RestoreStatus'])#'Frozen'说明解冻还未完成,'Restored'说明解冻成功
  • HTTP 返回状态码
状态码 描述
200 文件解冻成功
400 不存在的空间 或 文件类型非归档
403 API公私钥错误
401 上传凭证错误