如果未开启归档直读,归档类型的Object需要解冻后才能读取。冷归档、深度冷归档不支持开启直读,冷归档、深度冷归档类型的Object需要解冻后才能读取。涉及读取的操作包括下载(GetObject)、图片处理(ProcessImage)、拷贝(CopyObject)、分片拷贝(UploadPartCopy)、查询(SelectObject)以及通过POST请求进行数据处理(PostProcessTask)。本文介绍执行数据读取操作之前,如何完成归档、冷归档以及深度冷归档Object的解冻操作。
调用该接口解冻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文件永久处于解冻状态?。