全部產品
Search
文件中心

Object Storage Service:使用restore命令解凍檔案

更新時間:Jul 31, 2024

如果未開啟歸檔直讀,歸檔類型的Object需要解凍後才能讀取。冷歸檔、深度冷歸檔不支援開啟直讀,冷歸檔、深度冷歸檔類型的Object需要解凍後才能讀取。歸檔類型Object完成解凍通常需要數分鐘。冷歸檔類型Object完成解凍通常需要數小時。深度冷歸檔類型Object完成解凍通常需要12~48小時。解凍時間請以實際為準。本文為您介紹如何通過restore命令解凍檔案。

注意事項

  • 要解凍單個檔案,您必須具有oss:RestoreObject許可權;要按目錄解凍檔案,您必須具有oss:RestoreObjectoss:ListObjects許可權。具體操作,請參見為RAM使用者授權自訂的權限原則

  • 從ossutil 1.6.16版本開始,命令列中Binary名稱支援直接使用ossutil,您無需根據系統重新整理Binary名稱。如果您的ossutil版本低於1.6.16,則需要根據系統重新整理Binary名稱。更多資訊,請參見命令列工具ossutil命令參考

  • 關于歸檔儲存、冷Archive Storage或者深度冷Archive Storage類型檔案的解凍狀態以及費用說明,請參見解凍檔案

  • 僅1.7.11及以上版本支援解凍檔案。

命令格式

ossutil restore oss://bucketname[/prefix][local_xml_file]
[--encoding-type <value>]
[--payer <value>]
[--version-id <value>]
[-r, --recursive]
[-f, --force] 
[--object-file, <value>]
[--snapshot-path, <value>]
[--disable-ignore-error]
[--retry-times <value>]
[-j,--job <value>]

參數及選項說明如下:

配置項

說明

bucketname

Bucket名稱。

prefix

Bucket下的資源,例如目錄、檔案等。

local_xml_file

本地XML格式檔案,用於儲存冷歸檔類型檔案的解凍參數。

--encoding-type

對prefix名稱進行編碼,取值為url。如果不指定該選項,則表示prefix未經過編碼。

--payer

請求的支付方式。如果希望訪問指定路徑下的資源產生的流量、請求次數等費用由要求者支付,請將此選項的值設定為requester

--version-id

Object的指定版本。僅適用於已開啟或暫停版本控制狀態Bucket下的Object。

-r,--recursive

如果指定該選項時,ossutil將解凍所有與prefix匹配的檔案。如果不指定該選項,則ossutil只解凍指定檔案。

-f, --force

強制操作,不進行詢問提示。

--object-file

該選項用於批量解凍多個Archive Storage、冷Archive Storage或者深度冷Archive Storage類型的Object。使用該選項的步驟如下:

  1. 您需要指定.txt或者XML格式的本地檔案,並在本地檔案中換行填寫所有待解凍的Object。

  2. ossutil讀取本地檔案中的所有Object,然後對這些Object進行批量解凍。

說明

當其中一個Object操作出現錯誤時,ossutil會將該Object的錯誤資訊記錄到report檔案,並繼續解凍其他Object。成功操作的Object資訊不會被記錄到report檔案中。

--snapshot-path

如果指定該選項,則只對本次操作的Object產生快照。如果操作的Object已經存在快照資訊,則忽略本次操作。

說明

該選項需結合-r,--recursive--object-file選項使用。

--disable-ignore-error

大量操作時不忽略錯誤。

--retry-times

發生錯誤後的重試次數。預設值為10,取值範圍為1~500。

-j,--job

多檔案操作時的並發任務數,預設值為3,取值範圍為1~10000。

解凍歸檔類型Object

解凍歸檔類型Object需要1分鐘時間,解凍中的Object不支援讀取。

解凍狀態預設持續1天。對解凍狀態的檔案調用restore命令,會將Object的解凍狀態延長1天,最多可以延長到7天,之後Object又回到初始時的冷凍狀態。

說明

您可以通過cp命令轉換Object儲存類型。更多資訊,請參見修改檔案儲存體類型

解凍歸檔類型Object時,也可以在本地建立XML格式檔案config.xml,並在檔案中配置解凍天數參數。

<RestoreRequest>
    <Days>3</Days>
</RestoreRequest>
  • 解凍單個歸檔類型Object

    • 以下樣本用於解凍目標儲存空間examplebucket下名為exampleobject.txt的歸檔類型Object,並且解凍狀態保持3天。

      ossutil restore oss://examplebucket/exampleobject.txt config.xml
    • 以下樣本用於解凍目標儲存空間examplebucket下歸檔類型檔案exampleobject.txt的指定版本。

      ossutil restore oss://examplebucket/exampleobject.txt --version-id  CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3**** config.xml

      關於擷取Object所有版本的具體操作,請參見ls(列舉帳號層級下的資源)

  • 解凍多個歸檔類型Object

    • 樣本一:不同目錄下

      當您需要解凍examplebucket中的多個歸檔類型Object,且這些Object歸屬於Bucket的不同目錄下,例如exampleobject1.jpg位於examplebucket根目錄下,exampleobject2.png位於examplebucket的dir1/目錄下,exampleobject3.txt位於examplebucket的dir2/目錄下。您需要按照以下步驟完成解凍操作。

      1. 將待解凍的多個歸檔類型Object寫入本地檔案localfile.txt。

        exampleobject1.jpg
        dir1/exampleobject2.png
        dir2/exampleobject3.txt
      2. config.xml檔案中配置解凍狀態時間為3天。

        <RestoreRequest>
            <Days>3</Days>
        </RestoreRequest>
      3. 解凍多個歸檔類型Object。

        結合--object-file選項解凍目標儲存空間examplebucket下的多個歸檔類型Object。

        ossutil restore oss://examplebucket --object-file localfile.txt --snapshot-path dir/ config.xml
    • 樣本二:相同目錄下

      • 方法一

        您可以參考樣本一解凍某個Bucket中相同目錄下的多個Archive Storage類型Object。

      • 方法二

        結合-r選項,解凍examplebucket中指定目錄dest下的所有歸檔類型Object。

        ossutil restore oss://examplebucket/dest -r config.xml
  • 返回結果

    以上操作成功後,返回結果中將包含發起解凍請求所用時間長度,樣本如下:

    0.106852(s) elapsed

解凍冷歸檔類型Object

重要

根據解凍Object的大小,實際解凍時間可能會有變化,請以實際解凍時間為準。

解凍單個或多個冷歸檔類型Object前,您需要在本地建立XML格式檔案config.xml,並在檔案中配置如下解凍參數。

<RestoreRequest>
    <Days>3</Days>
    <JobParameters>
        <Tier>Bulk</Tier>
    </JobParameters>
</RestoreRequest>

配置參數說明如下:

參數

說明

Days

冷歸檔檔案保持解凍狀態的時間,單位為天。

取值範圍:1~365

Tier

冷歸檔檔案解凍優先順序。

取值如下:

  • Expedited(高優先順序):1小時內完成解凍。

  • Standard(標準):2~5小時內完成解凍。

  • Bulk(批量):5~12小時內完成解凍。

  • 解凍單個冷歸檔類型Object

    按照config.xml檔案配置,指定在1小時內解凍目標儲存空間examplebucket下的exampleobject.jpg,並且解凍狀態保持3天。

    ossutil restore oss://examplebucket/exampleobject.jpg config.xml
  • 解凍多個冷歸檔類型Object

    • 樣本一:不同目錄下

      當您需要解凍examplebucket中的多個冷歸檔類型Object,且這些Object歸屬於Bucket的不同目錄下,例如exampleobject1.jpg位於examplebucket根目錄下,exampleobject2.png位於examplebucket的dir1/目錄下,exampleobject3.txt位於examplebucket的dir2/目錄下。您需要按照以下步驟完成解凍操作。

      1. 將待解凍的多個冷歸檔類型Object寫入本地檔案localfile.txt。

        exampleobject1.jpg
        dir1/exampleobject2.png
        dir2/exampleobject3.txt
      2. 解凍多個Object。

        結合--object-file選項,按照config.xml檔案配置,指定在1小時內解凍目標儲存空間examplebucket下的多個冷歸檔類型Object,並且解凍狀態保持3天。

        ossutil restore oss://examplebucket --object-file localfile.txt --snapshot-path dir/ config.xml
    • 樣本二:相同目錄下

      • 方法一

        您可以參考樣本一解凍某個Bucket中相同目錄下的多個冷Archive Storage類型Object。

      • 方法二

        結合-r選項,解凍examplebucket下指定目錄dest下的所有冷歸檔類型Object。

        ossutil restore oss://examplebucket/dest -r config.xml
  • 返回結果

    以上操作成功後,返回結果中將包含發起解凍請求所用時間長度,樣本如下:

    0.106852(s) elapsed

解凍深度冷歸檔類型Object

重要

根據解凍Object的大小,實際解凍時間可能會有變化,請以實際解凍時間為準。

解凍單個或多個深度冷歸檔類型Object前,您需要在本地建立XML格式檔案config.xml,並在檔案中配置如下解凍參數。

<RestoreRequest>
    <Days>3</Days>
    <JobParameters>
        <Tier>Standard</Tier>
    </JobParameters>
</RestoreRequest>

配置參數說明如下:

參數

說明

Days

深度冷歸檔檔案保持解凍狀態的時間,單位為天。

取值範圍:1~365

Tier

深度冷歸檔檔案解凍優先順序。

取值如下:

  • Expedited(高優先順序):12小時內完成解凍。

  • Standard(標準):48小時內完成解凍。

  • 解凍單個深度冷歸檔類型Object

    按照config.xml檔案配置,指定在48小時內解凍目標儲存空間examplebucket下的exampleobject.jpg,並且解凍狀態保持3天。

    ossutil restore oss://examplebucket/exampleobject.jpg config.xml
  • 解凍多個深度冷歸檔類型Object

    • 樣本一:不同目錄下

      當您需要解凍examplebucket中的多個深度冷歸檔類型Object,且這些Object歸屬於Bucket的不同目錄下,例如exampleobject1.jpg位於examplebucket根目錄下,exampleobject2.png位於examplebucket的dir1/目錄下,exampleobject3.txt位於examplebucket的dir2/目錄下。您需要按照以下步驟完成解凍操作。

      1. 將待解凍的多個深度冷歸檔類型Object寫入本地檔案localfile.txt。

        exampleobject1.jpg
        dir1/exampleobject2.png
        dir2/exampleobject3.txt
      2. 解凍多個Object。

        結合--object-file選項,按照config.xml檔案配置,指定在48小時內解凍目標儲存空間examplebucket下的多個深度冷歸檔類型Object,並且解凍狀態保持3天。

        ossutil restore oss://examplebucket --object-file localfile.txt --snapshot-path dir/ config.xml
    • 樣本二:相同目錄下

      • 方法一

        您可以參考樣本一解凍某個Bucket中相同目錄下的多個深度冷Archive Storage類型Object。

      • 方法二

        結合-r選項,解凍examplebucket下指定目錄dest下的所有深度冷歸檔類型Object。

        ossutil restore oss://examplebucket/dest -r config.xml
  • 返回結果

    以上操作成功後,返回結果中將包含發起解凍請求所用時間長度,樣本如下:

    0.106852(s) elapsed

通用選項

當您需要通過命令列工具ossutil切換至另一個地區的Bucket時,可以通過-e選項指定該Bucket所屬的Endpoint。當您需要通過命令列工具ossutil切換至另一個阿里雲帳號下的Bucket時,可以通過-i選項指定該帳號的AccessKey ID,並通過-k選項指定該帳號的AccessKey Secret。

例如您需要解凍另一個阿里雲帳號下,華東2(上海)地區下目標儲存空間testbucket下的exampletest.png檔案,命令如下:

ossutil restore oss://testbucket/exampletest.png -e oss-cn-shanghai.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA****  -k 67DLVBkH7EamOjy2W5RVAHUY9H****

關於此命令的其他通用選項的更多資訊,請參見通用選項

相關文檔