如果未开启归档直读,归档类型的Object需要解冻后才能读取。冷归档、深度冷归档不支持开启直读,冷归档、深度冷归档类型的Object需要解冻后才能读取。涉及读取的操作包括下载(GetObject)、图片处理(ProcessImage)、拷贝(CopyObject)、分片拷贝(UploadPartCopy)、查询(SelectObject)以及通过POST请求进行数据处理(PostProcessTask)。本文介绍执行数据读取操作之前,如何完成归档、冷归档以及深度冷归档Object的解冻操作。
前提条件
Object的存储类型为归档、冷归档、深度冷归档。更多信息,请参见存储类型概述。
已具有
oss:RestoreObject
的权限。具体操作,请参见为RAM用户授权自定义的权限策略。
注意事项
RestoreObject接口只针对归档、冷归档和深度冷归档类型的Object,不适用于标准类型和低频访问类型的Object。
对归档、冷归档以及深度冷归档Object执行非数据读取请求时(例如
DeleteObject
、DeleteMultipleObjects
、GetObjectMeta
、HeadObject
等),无需解冻就能操作。对于无需解冻就能完成的操作,如果再解冻,将会产生额外不必要的费用。对于Object第一次调用RestoreObject接口,则返回202。如果已经成功调用过RestoreObject接口,且Object已完成解冻,再次调用时返回200 OK。
对于正在解冻中的Object不支持重复调用RestoreObject接口,需要等待Object解冻完成后再次调用RestoreObject接口。否则报错409。
对于开启版本控制的Bucket,Object的各个版本可以对应不同的存储类型。调用RestoreObject接口默认解冻Object当前版本,您可以通过指定versionId的方式来解冻Object指定版本。
解冻过程
不同存储类型的Object的解冻过程相同。Object的解冻过程如下。
初始时,Object处于冷冻状态。
提交一次解冻请求后,Object处于解冻中状态。
服务端完成解冻任务后,Object进入解冻状态。此时您可以读取Object。
如果Object处于解冻状态时,再次提交一次解冻请求,Object的解冻状态持续时间在原基础上累加。延长后的总时长不能超过每种存储类型的解冻状态持续时间的最大值。
解冻状态结束后,Object再次返回到冷冻状态。
解冻消耗时间
解冻不同存储类型的Object所消耗的时间可参考下表。解冻时间请以实际为准。
Object的存储类型 | 说明 |
归档类型 | 1分钟。 |
冷归档类型 |
|
深度冷归档类型 |
|
解冻配额
单个阿里云账号在单个地域的冷归档类型的Object的解冻配额参考值:平均每秒500个Object,三种解冻优先级总解冻配额为每天100 TB~120 TB。如您的业务有更高的解冻配额需求,请联系技术支持。
单个阿里云账号在单个地域的深度冷归档类型的Object解冻配额参考值:平均每秒100个Object,两种解冻优先级总解冻配额为每天10 TB~15 TB。如您的业务有更高的解冻配额需求,请联系技术支持。
超出冷归档以及深度冷归档的解冻配额参考值后,仍可以提交解冻请求。解冻请求将排入队列中,且解冻完成时间可能超出指定优先级对应的完成时间。
解冻状态持续时间
不同存储类型的Object处于解冻状态的持续时间如下。
Object的存储类型 | 说明 |
归档类型 | 取值为1~7的正整数,单位为天。 |
冷归档类型 | 取值为1~365的正整数,单位为天。 |
深度冷归档类型 | 取值为1~365的正整数,单位为天。 |
计费说明
解冻归档、冷归档、深度冷归档类型的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文件永久处于解冻状态?。