开发者社区> 问答> 正文

关于Object操作之如何实现 RestoreObject?


Restore Object


针对Archive类型的Object读取,需要使用Restore操作让服务端执行解冻任务。如果一个Object是Standard或者IA类型,不要调用该接口。归档Object在执行Restore前后的状态变换过程如下:    a. 一个Archive类型的Object初始时处于冷冻状态;    b. 提交一次Restore操作后,Object将处于解冻中,服务端执行解冻;    c. 待服务端执行完成解冻任务后,Object就能够进入解冻状态,此时用户可以读取Object;    d. 解冻状态默认持续1天,用户可以延长到最多7天,之后,Object又回到初始时的冷冻状态。
对一个处于冷冻状态的归档Object执行Restore操作,会产生数据取回费用;如果一个归档Object处于解冻中或者解冻完成状态时,再次提交Restore,则不会收取数据取回费用。

请求语法POST /ObjectName?restore HTTP/1.1
Host: archive-bucket.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue





细节分析

  1. 如果是针对该Object第一次调用restore接口,则返回202。
  2. 如果已经成功调用过restore接口,且服务端仍处于解冻中,再次调用时返回409, 错误码为:RestoreAlreadyInProgress; 服务端返回该错误,代表服务端正在执行restore操作,用户只需要等待作业完成,最长等待时间4小时。
  3. 如果已经成功调用过restore接口,且服务端解冻已经完成,再次调用时返回200,且会将object的可下载时间延长一天,最多延长7天。
  4. 如果object不存在,则返回404。
  5. 如果针对非Archive类型的Object提交restore,则返回400错,错误码为:OperationNotSupported。


示例


[backcolor=transparent]首次提交restore的请求示例 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 e1Unnbm1rgdnpI:y4eyu+4yje5ioRCr5PB=


[backcolor=transparent]返回示例 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


[backcolor=transparent]再次调用,且restore没有完成时: 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 e1Unnbm1rgdnpI:21qtGJ+ykDVmdy4eyu+NIUs=


[backcolor=transparent]返回示例 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.200.203</HostId>
</Error>


[backcolor=transparent]再次调用,且restore已经完成时: 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 e1Unnbm1rgdnpI:u6O6FMJnn+WuBwbByZxm1+y4eyu+NIUs=


[backcolor=transparent]返回示例 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

展开
收起
青衫无名 2017-10-20 11:41:53 3151 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
建立联系方法之一 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载