问题描述
无法读取请求中指定的Object。
问题原因
您读取的Object是归档类型,该Object当前处于不可读取的状态,可能原因如下:
没有对Object完成RestoreObject操作。例如,没有提交RestoreObject请求。上一次提交RestoreObject已超时。已经提交RestoreObject请求,但RestoreObject操作还没有完成。
Object所在的存储空间未开启归档直读。如果未开启归档直读,就需对Object完成RestoreObject操作。
问题示例
以下请求中指向的oss.jpg仍处于归档状态,无法读取。
GET /oss.jpg HTTP/1.1
Host: oss-archive-example.oss-cn-hangzhou.aliyuncs.com
Date: Sat, 15 Apr 2017 09:38:30 GMT
Authorization: OSS qn6q**************:77Dv****************
解决方案
您可以选择以下任意一种解决方案:
解冻Object:
调用RestoreObject接口解冻Object,并确保已完成解冻操作。
其中,x-oss-restore请求头中的expiry-date字段表示解冻过期时间。
解冻完成后,返回响应如下:
HTTP/1.1 200 OK x-oss-request-id: 58F723829F29F18D7F00***** x-oss-object-type: Normal x-oss-restore: ongoing-request="false", expiry-date="Sun, 16 Apr 2017 08:12:33 GMT" Date: Sat, 15 Apr 2017 09:38:30 GMT Last-Modified: Sat, 15 Apr 2017 06:07:48 GMT ETag: "5B3C1A2E0763E1B002CC607C*****" Content-Type: image/jpg Content-Length: 344606 Server: AliyunOSS [354606 bytes of object data]
在解冻过期时间到期前,重新发起GET请求。
开启归档直读:为Object所在的存储空间开启归档直读。开启归档直读后,存储空间下的所有归档存储类型Object无需执行RestoreObject,就处于可读取的状态。具体操作,请参见归档直读。