使用物件版本管理功能

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

設定物件版本管理功能

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

啟用物件版本管理功能

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

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 檔案:

    {
      "versioning": {
        "enabled": true
      }
    }
  3. 使用 cURL 透過 PATCH 值區要求呼叫 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. 使用 cURL 透過 PUT 值區要求以及 versioning 查詢字串參數呼叫 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 檔案:

    {
      "versioning": {
        "enabled": false
      }
    }
  3. 使用 cURL 透過 PATCH 值區要求呼叫 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. 使用 cURL 透過 PUT 值區要求以及 versioning 查詢字串參數呼叫 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. 使用 cURL 透過 GET 值區要求呼叫 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. 使用 cURL 透過 GET 值區要求以及 versioning 查詢字串參數呼叫 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. 使用 cURL 透過 LIST 物件要求呼叫 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. 使用 cURL 透過 GET 值區要求以及 versions 查詢字串參數呼叫 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. 使用 cURL 透過 POST 物件要求呼叫 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. 使用 cURL 透過 PUT 物件要求呼叫 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. 使用 cURL 透過 DELETE 物件要求呼叫 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. 使用 cURL 透過 DELETE 物件要求呼叫 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
需要協助嗎?請前往我們的支援網頁