使用物件版本管理功能

本頁面說明如何設定物件版本管理功能,並提供物件版本管理功能的使用範例。如需此功能的說明,請參閱物件版本管理一文。

設定物件版本管理功能

下列各節說明如何使用 gsutil 工具JSON APIXML API 開啟及關閉物件版本管理功能。這項功能目前無法使用 Google Cloud Platform 主控台控管。

啟用物件版本管理功能

如要啟用值區的物件版本管理功能:

gsutil

使用 gsutil versioning set on 指令,並將 [VALUES_IN_BRACKETS] 替換為適當的值:

gsutil versioning set on gs://[BUCKET_NAME]

REST API

JSON API

  1. OAuth 2.0 Playground 取得授權存取憑證。將 Playground 設為使用您自己的 OAuth 憑證。
  2. 建立包含下列資訊的 .json 檔案:
  3. {
      "versioning": {
        "enabled": true
      }
    }
  4. 透過 PATCH 值區要求使用 cURL 呼叫 JSON API,並將 [VALUES_IN_BRACKETS] 替換為適當的值:
    curl -X PATCH --data-binary @[JSON_FILE_NAME].json \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        -H "Content-Type: application/json" \
        "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]?fields=versioning"

XML API

  1. OAuth 2.0 Playground 取得授權存取憑證。將 Playground 設為使用您自己的 OAuth 憑證。
  2. 建立一個包含下列資訊的 .xml 檔案,並將 [VALUES_IN_BRACKETS] 替換為適當的值:
    <VersioningConfiguration>
      <Status>Enabled</Status>
    </VersioningConfiguration>
  3. 透過 PUT 值區 要求及 versioning 查詢字串參數使用 cURL 呼叫 XML API,並將 [VALUES_IN_BRACKETS] 替換為適當的值:
    curl -X PUT --data-binary @[XML_FILE_NAME].xml \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://storage.googleapis.com/[BUCKET_NAME]?versioning"

啟用物件版本管理功能後,每當物件的使用中版本遭到覆寫或刪除,Cloud Storage 就會為該物件建立一個封存版本

停用物件版本管理功能

如要停用值區的物件版本管理功能:

gsutil

使用 gsutil versioning set off 指令,並將 [VALUES_IN_BRACKETS] 替換為適當的值:

gsutil versioning set off gs://[BUCKET_NAME]

REST API

JSON API

  1. OAuth 2.0 Playground 取得授權存取憑證。將 Playground 設為使用您自己的 OAuth 憑證。
  2. 建立包含下列資訊的 .json 檔案:
  3. {
      "versioning": {
        "enabled": false
      }
    }
  4. 透過 PATCH 值區要求使用 cURL 呼叫 JSON API,並將 [VALUES_IN_BRACKETS] 替換為適當的值:
    curl -X PATCH --data-binary @[JSON_FILE_NAME].json \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        -H "Content-Type: application/json" \
        "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]?fields=versioning"

XML API

  1. OAuth 2.0 Playground 取得授權存取憑證。將 Playground 設為使用您自己的 OAuth 憑證。
  2. 建立一個包含下列資訊的 .xml 檔案,並將 [VALUES_IN_BRACKETS] 替換為適當的值:
    <VersioningConfiguration>
      <Status>Suspended</Status>
    </VersioningConfiguration>
  3. 透過 PUT 值區 要求及 versioning 查詢字串參數使用 cURL 呼叫 XML API,並將 [VALUES_IN_BRACKETS] 替換為適當的值:
    curl -X PUT --data-binary @[XML_FILE_NAME].xml \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://storage.googleapis.com/[BUCKET_NAME]?versioning"

確認是否已啟用物件版本管理功能

如要確認值區是否已啟用物件版本管理功能:

gsutil

使用 gsutil versioning get 指令,並將 [VALUES_IN_BRACKETS] 替換為適當的值:

gsutil versioning get gs://[BUCKET_NAME]

如果物件版本管理功能已啟用,回應會類似以下範例:

gs://[BUCKET_NAME]: Enabled

REST API

JSON API

  1. OAuth 2.0 Playground 取得授權存取憑證。將 Playground 設為使用您自己的 OAuth 憑證。
  2. 透過 GET 值區要求使用 cURL 呼叫 JSON API,並將 [VALUES_IN_BRACKETS] 替換為適當的值:
    curl -X GET -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]?fields=versioning"

XML API

  1. OAuth 2.0 Playground 取得授權存取憑證。將 Playground 設為使用您自己的 OAuth 憑證。
  2. 透過 GET 值區 要求及 versioning 查詢字串參數使用 cURL 呼叫 XML API,並將 [VALUES_IN_BRACKETS] 替換為適當的值:
    curl -X GET \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://storage.googleapis.com/[BUCKET_NAME]?versioning"

使用版本化物件

以下各節說明如何使用版本化物件。如需深入瞭解相關使用範例,請參閱物件版本管理範例

列出已封存的物件版本

如要列出使用中和已封存的物件版本,並查看其 generation 編號:

gsutil

使用 gsutil ls -a 指令,並將 [VALUES_IN_BRACKETS] 替換為適當的值:

gsutil ls -a gs://[BUCKET_NAME]

回應類似下列範例:

gs://[BUCKET_NAME]/[OBJECT_NAME1]#[GENERATION_NUMBER1]
gs://[BUCKET_NAME]/[OBJECT_NAME1]#[GENERATION_NUMBER2]
gs://[BUCKET_NAME]/[OBJECT_NAME1]#[GENERATION_NUMBER3]
...

REST API

JSON API

  1. OAuth 2.0 Playground 取得授權存取憑證。將 Playground 設為使用您自己的 OAuth 憑證。
  2. 透過 LIST 物件要求使用 cURL 呼叫 JSON API,並將 [VALUES_IN_BRACKETS] 替換為適當的值。
    curl -X GET -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/o?versions=true"

已封存的物件版本具有「timeDeleted」屬性。

XML API

  1. OAuth 2.0 Playground 取得授權存取憑證。將 Playground 設為使用您自己的 OAuth 憑證。
  2. 透過 GET 值區 要求及 versions 查詢字串參數使用 cURL 呼叫 XML API,並將 [VALUES_IN_BRACKETS] 替換為適當的值:
    curl -X GET -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://storage.googleapis.com/[BUCKET_NAME]?versions"

與不使用 versions 查詢參數相比,使用這個參數時,GET 的要求結果會有一些差異。具體而言,當您在要求中包含 versions 查詢參數時,Cloud Storage 會傳回下列訊息:

  • Version 元素,其中包含每個物件的資訊。
  • DeletedTime 元素,其中包含物件的封存 (刪除或覆寫) 時間。
  • IsLatest 元素,指示特定物件是否為最新版本。
  • 如果值區中有多個物件版本,且只顯示一部分的物件清單時,系統會傳回 NextGenerationMarker 元素。在後續要求的 generationmarker 查詢參數中使用此元素的值,即可從最後一點繼續。generationmarker 查詢參數的使用方式與使用 marker 查詢參數來查看非版本化值區清單的方法一樣。

存取已封存的物件版本

如要存取已封存的物件版本:

gsutil

  1. [VALUES_IN_BRACKETS] 取代為適當的值,以將已封存物件的 generation 號碼附加至物件名稱:

    [OBJECT_NAME]#[GENERATION_NUMBER]
  2. 使用步驟 1 的字串,按照平常方式處理使用中物件。

REST API

JSON API

  1. 將已封存物件的 generation 號碼附加至物件的 URI,並將 [VALUES_IN_BRACKETS] 取代為適當的值:
    https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/o/[OBJECT_NAME]?generation=[GENERATION_NUMBER]
  2. 使用步驟 1 的 URI,按照平常方式處理使用中物件。

XML API

  1. 將已封存物件的 generation 號碼附加至物件的 URI,並將 [VALUES_IN_BRACKETS] 取代為適當的值:
    https://storage.googleapis.com/[BUCKET_NAME]/[OBJECT_NAME]?generation=[GENERATION_NUMBER]
  2. 使用步驟 1 的 URI,按照平常方式處理使用中物件。

複製已封存的物件版本

如要複製已封存的物件版本:

gsutil

使用 gsutil cp 指令,並將 [VALUES_IN_BRACKETS] 替換為適當的值:

gsutil cp gs://[SOURCE_BUCKET_NAME]/[SOURCE_OBJECT_NAME]#[GENERATION_NUMBER] gs://[DESTINATION_BUCKET_NAME]/[DESTINATION_OBJECT_NAME]

如果成功,回應會類似以下範例:

Operation completed over 1 objects/58.8 KiB.

REST API

JSON API

  1. OAuth 2.0 Playground 取得授權存取憑證。將 Playground 設為使用您自己的 OAuth 憑證。
  2. 透過 POST 物件要求使用 cURL 呼叫 JSON API,並將 [VALUES_IN_BRACKETS] 替換為適當的值:
    curl -X POST \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        -H "Content-Length: 0" \
        "https://www.googleapis.com/upload/storage/v1/b/[SOURCE_BUCKET_NAME]/o/[SOURCE_OBJECT_NAME]/rewriteTo/b/[DESTINATION_BUCKET_NAME]/o/[NAME_OF_COPY]?sourceGeneration=[GENERATION_NUMBER]"

XML API

  1. OAuth 2.0 Playground 取得授權存取憑證。將 Playground 設為使用您自己的 OAuth 憑證。
  2. 透過 PUT 物件要求使用 cURL 呼叫 XML API,並將 [VALUES_IN_BRACKETS] 替換為適當的值:
    curl -X PUT \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        -H "x-goog-copy-source: [SOURCE_BUCKET_NAME]/[SOURCE_OBJECT_NAME]" \
        -H "x-goog-copy-source-generation:[GENERATION_NUMBER]" \
        "https://storage.googleapis.com/[DESTINATION_BUCKET_NAME]/[NAME_OF_COPY]"

刪除已封存的物件版本

如要刪除已封存的物件版本:

gsutil

使用 gsutil rm 指令,並將 [VALUES_IN_BRACKETS] 替換為適當的值:

gsutil rm gs://[BUCKET_NAME]/[OBJECT_NAME]#[GENERATION_NUMBER]

如果成功,回應會類似以下範例:

Operation completed over 1 objects.

REST API

JSON API

  1. OAuth 2.0 Playground 取得授權存取憑證。將 Playground 設為使用您自己的 OAuth 憑證。
  2. 透過 DELETE 物件要求使用 cURL 呼叫 JSON API,並將 [VALUES_IN_BRACKETS] 替換為適當的值:
    curl -X DELETE \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/o/[OBJECT_NAME]?generation=[GENERATION_NUMBER]"

XML API

  1. OAuth 2.0 Playground 取得授權存取憑證。將 Playground 設為使用您自己的 OAuth 憑證。
  2. 透過 DELETE 物件要求使用 cURL 呼叫 XML API,並將 [VALUES_IN_BRACKETS] 替換為適當的值:
    curl -X DELETE \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://storage.googleapis.com/[BUCKET_NAME]/[OBJECT_NAME]?generation=[GENERATION_NUMBER]"
本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Cloud Storage
需要協助嗎?請前往我們的支援網頁