RestoreObject
如果未開啟歸檔直讀,歸檔類型的Object需要解凍后才能讀取。冷歸檔、深度冷歸檔不支持開啟直讀,冷歸檔、深度冷歸檔類型的Object需要解凍后才能讀取。涉及讀取的操作包括下載(GetObject)、圖片處理(ProcessImage)、拷貝(CopyObject)、分片拷貝(UploadPartCopy)、查詢(SelectObject)以及通過POST請求進(jìn)行數(shù)據(jù)處理(PostProcessTask)。本文介紹執(zhí)行數(shù)據(jù)讀取操作之前,如何完成歸檔、冷歸檔以及深度冷歸檔Object的解凍操作。
前提條件
Object的存儲類型為歸檔、冷歸檔、深度冷歸檔。更多信息,請參見存儲類型概述。
已具有
oss:RestoreObject
的權(quán)限。具體操作,請參見為RAM用戶授權(quán)自定義的權(quán)限策略。
注意事項
RestoreObject接口只針對歸檔、冷歸檔和深度冷歸檔類型的Object,不適用于標(biāo)準(zhǔn)類型和低頻訪問類型的Object。
對歸檔、冷歸檔以及深度冷歸檔Object執(zhí)行非數(shù)據(jù)讀取請求時(例如
DeleteObject
、DeleteMultipleObjects
、GetObjectMeta
、HeadObject
等),無需解凍就能操作。對于無需解凍就能完成的操作,如果再解凍,將會產(chǎn)生額外不必要的費(fèi)用。對于Object第一次調(diào)用RestoreObject接口,則返回202。如果已經(jīng)成功調(diào)用過RestoreObject接口,且Object已完成解凍,再次調(diào)用時返回200 OK。
對于正在解凍中的Object不支持重復(fù)調(diào)用RestoreObject接口,需要等待Object解凍完成后再次調(diào)用RestoreObject接口。否則報錯409。
對于開啟版本控制的Bucket,Object的各個版本可以對應(yīng)不同的存儲類型。調(diào)用RestoreObject接口默認(rèn)解凍Object當(dāng)前版本,您可以通過指定versionId的方式來解凍Object指定版本。
解凍過程
不同存儲類型的Object的解凍過程相同。Object的解凍過程如下。
初始時,Object處于冷凍狀態(tài)。
提交一次解凍請求后,Object處于解凍中狀態(tài)。
服務(wù)端完成解凍任務(wù)后,Object進(jìn)入解凍狀態(tài)。此時您可以讀取Object。
如果Object處于解凍狀態(tài)時,再次提交一次解凍請求,Object的解凍狀態(tài)持續(xù)時間在原基礎(chǔ)上累加。延長后的總時長不能超過每種存儲類型的解凍狀態(tài)持續(xù)時間的最大值。
解凍狀態(tài)結(jié)束后,Object再次返回到冷凍狀態(tài)。
解凍消耗時間
解凍不同存儲類型的Object所消耗的時間可參考下表。解凍時間請以實際為準(zhǔn)。
Object的存儲類型 | 說明 |
歸檔類型 | 1分鐘。 |
冷歸檔類型 |
|
深度冷歸檔類型 |
|
解凍配額
單個阿里云賬號在單個地域的冷歸檔類型的Object的解凍配額參考值:平均每秒500個Object,三種解凍優(yōu)先級總解凍配額為每天100 TB~120 TB。如您的業(yè)務(wù)有更高的解凍配額需求,請聯(lián)系技術(shù)支持。
單個阿里云賬號在單個地域的深度冷歸檔類型的Object解凍配額參考值:平均每秒100個Object,兩種解凍優(yōu)先級總解凍配額為每天10 TB~15 TB。如您的業(yè)務(wù)有更高的解凍配額需求,請聯(lián)系技術(shù)支持。
超出冷歸檔以及深度冷歸檔的解凍配額參考值后,仍可以提交解凍請求。解凍請求將排入隊列中,且解凍完成時間可能超出指定優(yōu)先級對應(yīng)的完成時間。
解凍狀態(tài)持續(xù)時間
不同存儲類型的Object處于解凍狀態(tài)的持續(xù)時間如下。
Object的存儲類型 | 說明 |
歸檔類型 | 取值為1~7的正整數(shù),單位為天。 |
冷歸檔類型 | 取值為1~365的正整數(shù),單位為天。 |
深度冷歸檔類型 | 取值為1~365的正整數(shù),單位為天。 |
計費(fèi)說明
解凍歸檔、冷歸檔、深度冷歸檔類型的Object會產(chǎn)生數(shù)據(jù)取回容量費(fèi)用。更多信息,請參見數(shù)據(jù)處理費(fèi)用。
解凍歸檔類型的Object會產(chǎn)生Put類型請求次數(shù)費(fèi)用。更多信息,請參見請求費(fèi)用。
解凍冷歸檔、深度冷歸檔類型的Object會產(chǎn)生取回請求次數(shù)費(fèi)用。更多信息,請參見請求費(fèi)用。
歸檔類型、冷歸檔、深度冷歸檔類型的Object在解凍過程中以及解凍完成后,均按照相應(yīng)的存儲類型計算存儲費(fèi)用。更多信息,請參見存儲費(fèi)用。
冷歸檔、深度冷歸檔類型的Object在解凍時,會生成一份標(biāo)準(zhǔn)存儲類型的文件副本用于訪問,該文件在解凍時間結(jié)束前會以標(biāo)準(zhǔn)存儲的存儲費(fèi)率計算臨時存儲費(fèi)用。更多信息,請參見臨時存儲費(fèi)用。
歸檔類型的Object可達(dá)到最長7天的解凍持續(xù)時間,冷歸檔、深度冷歸檔類型的Object可達(dá)到最長365天的解凍持續(xù)時間,在此期間不再重復(fù)收取數(shù)據(jù)取回費(fèi)用。
解凍狀態(tài)結(jié)束后,Object又回到冷凍狀態(tài),再次執(zhí)行解凍操作會收取數(shù)據(jù)取回費(fèi)用。
請求語法
POST /ObjectName?restore HTTP/1.1
Host: archive-bucket.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
請求頭
此接口僅包含公共請求頭。更多信息,請參見公共請求頭(Common Request Headers)。
請求參數(shù)
名稱 | 類型 | 是否必選 | 示例值 | 描述 |
RestoreRequest | 容器 | 是 | 不涉及 | 解凍請求信息。 子節(jié)點(diǎn):Days、JobParameters |
Days | 整型 | 是 | 2 | 設(shè)置歸檔、冷歸檔以及深度冷歸檔類型Object的解凍天數(shù)。
父節(jié)點(diǎn):RestoreRequest |
JobParameters | 容器 | 否 | 不涉及 | 解凍優(yōu)先級的容器。僅在解凍冷歸檔、深度冷歸檔類型的Object時有效。 如果不傳入JobParameters節(jié)點(diǎn),則解凍優(yōu)先級默認(rèn)為Standard。 父節(jié)點(diǎn):RestoreRequest 子節(jié)點(diǎn):Tier |
Tier | 字符串 | 否 | Standard | 冷歸檔、深度冷歸檔類型Object解凍優(yōu)先級。取值范圍如下:
父節(jié)點(diǎn):JobParameters |
響應(yīng)頭
名稱 | 類型 | 示例值 | 描述 |
x-oss-object-restore-priority | 字符串 | Standard | 解凍優(yōu)先級。僅處于解凍狀態(tài)的冷歸檔或者深度冷歸檔類型的Object才顯示該字段。 |
x-oss-version-id | 字符串 | CAEQNRiBgMClj7qD0BYiIDQ5Y2QyMjc3NGZkODRlMTU5M2VkY2U3MWRiNGRh**** | Object的版本ID。僅解凍Object指定版本時才顯示該字段。 |
此接口還包含公共響應(yīng)頭。更多信息,請參見公共響應(yīng)頭(Common Response Headers)。
示例
第一次對處于冷凍狀態(tài)的歸檔類型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
對處于解凍中狀態(tài)的歸檔類型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>
對處于解凍狀態(tài)的歸檔類型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
對處于解凍狀態(tài)的冷歸檔或者深度冷歸檔類型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
此接口對應(yīng)的各語言SDK如下:
錯誤碼
錯誤碼 | HTTP狀態(tài)碼 | 描述 |
OperationNotSupported | 400 | 目標(biāo)Object不支持解凍,該Object不是歸檔、冷歸檔或者深度冷歸檔類型。 |
NoSuchKey | 404 | 目標(biāo)Object不存在。 |
RestoreAlreadyInProgress | 409 | 您已經(jīng)成功調(diào)用過RestoreObject接口,且服務(wù)端正在執(zhí)行解凍操作。請不要重復(fù)提交RestoreObject。 |
相關(guān)文檔
關(guān)于解凍文件消耗時間、解凍狀態(tài)持續(xù)時間的更多信息,請參見解凍文件。
關(guān)于如何通過ossutil解凍文件,請參見restore(解凍文件)。
如果需要使OSS文件永久處于解凍狀態(tài),請參見如何使OSS文件永久處于解凍狀態(tài)?。