如果未开启归档直读,归档类型的Object需要解冻后才能读取。冷归档、深度冷归档不支持开启直读,冷归档、深度冷归档类型的Object需要解冻后才能读取。归档类型Object完成解冻通常需要数分钟。冷归档类型Object完成解冻通常需要数小时。深度冷归档类型Object完成解冻通常需要12~48小时。解冻时间请以实际为准。本文为您介绍如何调用 RestoreObject 接口解冻归档类型、冷归档、深度冷归档类型的文件(Object)。
解冻过程
不同存储类型的Object的解冻过程相同。Object的解冻过程如下。
-
初始时,Object处于冷冻状态。
-
提交一次解冻请求后,Object处于解冻中状态。
-
服务端完成解冻任务后,Object进入解冻状态。此时您可以读取Object。
-
如果Object处于解冻状态时,再次提交一次解冻请求,Object的解冻状态持续时间在原基础上累加。延长后的总时长不能超过每种存储类型的解冻状态持续时间的最大值。
-
解冻状态结束后,Object再次返回到冷冻状态。
注意事项
-
RestoreObject接口只针对归档、冷归档和深度冷归档类型的Object,不适用于标准类型和低频访问类型的Object。
-
对于Object第一次调用RestoreObject接口,则返回202。如果已经成功调用过RestoreObject接口,且Object已完成解冻,再次调用时返回200 OK。
-
对于正在解冻中的Object不支持重复调用RestoreObject接口,需要等待Object解冻完成后再次调用RestoreObject接口。否则报错409。
-
对于开启版本控制的Bucket,Object的各个版本可以对应不同的存储类型。调用RestoreObject接口默认解冻Object当前版本,您可以通过指定versionId的方式来解冻Object指定版本。
计费说明
-
解冻归档、冷归档、深度冷归档类型的Object会产生数据取回容量费用。更多信息,请参见 数据处理费用 。
-
解冻归档类型的Object会产生Put类型请求次数费用。更多信息,请参见 请求费用 。
-
解冻冷归档、深度冷归档类型的Object会产生取回请求次数费用。更多信息,请参见 请求费用 。
-
归档类型、冷归档、深度冷归档类型的Object在解冻过程中以及解冻完成后,均按照相应的存储类型计算存储费用。更多信息,请参见 存储费用 。
-
冷归档、深度冷归档类型的Object在解冻时,会生成一份标准存储类型的文件副本用于访问,该文件在解冻时间结束前会以标准存储的存储费率计算临时存储费用。更多信息,请参见 临时存储费用 。
-
归档类型的Object可达到最长7天的解冻持续时间,冷归档、深度冷归档类型的Object可达到最长365天的解冻持续时间,在此期间不再重复收取数据取回费用。
-
解冻状态结束后,Object又回到冷冻状态,再次执行解冻操作会收取数据取回费用。
请求语法
POST /ObjectName?restore HTTP/1.1
Host: archive-bucket.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
请求头
此接口仅包含公共请求头。更多信息,请参见 公共请求头(Common Request Headers) 。
请求参数
名称 |
类型 |
是否必选 |
示例值 |
描述 |
RestoreRequest |
容器 |
是 |
不涉及 |
解冻请求信息。 子节点:Days、JobParameters |
Days |
整型 |
是 |
2 |
设置归档、冷归档以及深度冷归档类型Object的解冻天数。
父节点:RestoreRequest |
JobParameters |
容器 |
否 |
不涉及 |
解冻优先级的容器。仅在解冻冷归档、深度冷归档类型的Object时有效。 如果不传入JobParameters节点,则解冻优先级默认为Standard。 父节点:RestoreRequest 子节点:Tier |
Tier |
字符串 |
否 |
Standard |
冷归档、深度冷归档类型Object解冻优先级。取值范围如下:
父节点:JobParameters |
响应头
名称 |
类型 |
示例值 |
描述 |
x-oss-object-restore-priority |
字符串 |
Standard |
解冻优先级。仅处于解冻状态的冷归档或者深度冷归档类型的Object才显示该字段。 |
x-oss-version-id |
字符串 |
CAEQNRiBgMClj7qD0BYiIDQ5Y2QyMjc3NGZkODRlMTU5M2VkY2U3MWRiNGRh**** |
Object的版本ID。仅解冻Object指定版本时才显示该字段。 |
此接口还包含公共响应头。更多信息,请参见 公共响应头(Common Response Headers) 。
示例
-
第一次对处于冷冻状态的归档类型Object提交解冻请求
请求示例
POST /oss.jpg?restore HTTP/1.1 Host: oss-archive-example.oss-cn-hangzhou.aliyuncs.com Date: Sat, 15 Apr 2017 07:45:28 GMT Authorization: OSS qn6q**************:77Dv****************
返回示例
HTTP/1.1 202 Accepted Date: Sat, 15 Apr 2017 07:45:28 GMT Content-Length: 0 Connection: keep-alive Server: AliyunOSS x-oss-request-id: 5374A2880232A65C23002D74
-
对处于解冻中状态的归档类型Object提交解冻请求
请求示例
POST /oss.jpg?restore HTTP/1.1 Host: oss-archive-example.oss-cn-hangzhou.aliyuncs.com Date: Sat, 15 Apr 2017 07:45:29 GMT Authorization: OSS qn6q**************:77Dv****************
返回示例
HTTP/1.1 409 Conflict Date: Sat, 15 Apr 2017 07:45:29 GMT Content-Length: 556 Connection: keep-alive Server: AliyunOSS x-oss-request-id: 5374A2880232A65C23002D74 <?xml version="1.0" encoding="UTF-8"?> <Error> <Code>RestoreAlreadyInProgress</Code> <Message>The restore operation is in progress.</Message> <RequestId>58EAF141461FB42C2B000008</RequestId> <HostId>10.101.XX.XX</HostId> </Error>
-
对处于解冻状态的归档类型Object提交解冻请求
请求示例
POST /oss.jpg?restore HTTP/1.1 Host: oss-archive-example.oss-cn-hangzhou.aliyuncs.com Date: Sat, 15 Apr 2017 07:45:29 GMT Authorization: OSS qn6q**************:77Dv**************** <RestoreRequest> <Days>2</Days> </RestoreRequest>
返回示例
HTTP/1.1 200 Ok Date: Sat, 15 Apr 2017 07:45:30 GMT Content-Length: 0 Connection: keep-alive Server: AliyunOSS x-oss-request-id: 5374A2880232A65C23002D74
-
对处于解冻状态的冷归档或者深度冷归档类型Object提交解冻请求
请求示例
POST /coldarchiveobject?restore HTTP/1.1 Host: cold-archive-bucket.oss-cn-hangzhou.aliyuncs.com User-Agent: aliyun-sdk-go/v2.1.0 (Darwin/17.5.0/x86_64;go1.11.8)/ossutil-v1.6.12 Content-Length: 99 Authorization: OSS qn6q**************:77Dv**************** Content-Type: text/plain; charset=utf-8 Date: Tue, 21 Apr 2020 11:09:19 GMT Accept-Encoding: gzip <RestoreRequest> <Days>2</Days> <JobParameters> <Tier>Standard</Tier> </JobParameters> </RestoreRequest>
返回示例
HTTP/1.1 200 OK Server: AliyunOSS Date: Tue, 21 Apr 2020 11:09:19 GMT Content-Length: 0 Connection: keep-alive x-oss-request-id: 5E9ED45F093E2F3930318EA0 x-oss-object-restore-priority: Standard x-oss-server-time: 10
-
指定versionId来解冻指定版本的Object
请求示例
POST /oss.jpg?restore&versionId=CAEQNRiBgMClj7qD0BYiIDQ5Y2QyMjc3NGZkODRlMTU5M2VkY2U3MWRiNGRh**** HTTP/1.1 Host: oss-archive-example.oss-cn-hangzhou.aliyuncs.com Date: Tue, 09 Apr 2019 06:50:48 GMT Authorization: OSS qn6q**************:77Dv****************
返回示例
HTTP/1.1 202 Accepted Date: Tue, 09 Apr 2019 06:50:48 GMT Content-Length: 0 Connection: keep-alive Server: AliyunOSS x-oss-version-id: CAEQNRiBgMClj7qD0BYiIDQ5Y2QyMjc3NGZkODRlMTU5M2VkY2U3MWRiNGRh**** x-oss-request-id: 5CAC40C8B7AEADE017000653
SDK
此接口对应的各语言SDK如下:
错误码
错误码 |
HTTP状态码 |
描述 |
OperationNotSupported |
400 |
目标Object不支持解冻,该Object不是归档、冷归档或者深度冷归档类型。 |
NoSuchKey |
404 |
目标Object不存在。 |
RestoreAlreadyInProgress |
409 |
您已经成功调用过RestoreObject接口,且服务端正在执行解冻操作。请不要重复提交RestoreObject。 |
相关文档
-
关于解冻文件消耗时间、解冻状态持续时间的更多信息,请参见 解冻文件 。
-
关于如何通过ossutil解冻文件,请参见 restore(解冻文件) 。
-
如果需要使OSS文件永久处于解冻状态,请参见 如何使OSS文件永久处于解冻状态? 。