如果未開啟歸檔直讀,歸檔類型的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檔案永久處於解凍狀態?。