このページでは、非現行オブジェクトに対して、一覧表示、アクセス、復元、削除を行う方法を説明します。ここで説明する方法は通常、オブジェクトのバージョニングが有効になっているバケットに適用されます。
前提条件
前提条件は使用するツールによって異なります。
コンソール
Google Cloud Console を使用してこのガイドを完了するには、適切な IAM 権限が必要です。アクセス対象のバケットが、他のユーザーが作成したプロジェクトに存在する場合は、そのプロジェクトのオーナーから必要な権限を持つロールを付与してもらう必要があります。
特定のアクションに必要な権限の一覧については、Google Cloud Console に適用される IAM 権限をご覧ください。
関連するロールのリストについては、Cloud Storage のロールをご覧ください。また、特定の制限された権限を持つカスタムロールを作成することもできます。
コマンドライン
コマンドライン ユーティリティを使用してこのガイドを完了するには、適切な IAM 権限が必要です。アクセス対象のバケットが、他のユーザーが作成したプロジェクトに存在する場合は、そのプロジェクトのオーナーから必要な権限を持つロールを付与してもらう必要があります。
特定の操作に必要な権限の一覧については、gsutil コマンドの IAM 権限をご覧ください。
関連するロールのリストについては、Cloud Storage のロールをご覧ください。また、特定の制限された権限を持つカスタムロールを作成することもできます。
コードサンプル
Cloud Storage クライアント ライブラリを使用してこのガイドを完了するには、適切な IAM 権限が必要です。アクセス対象のバケットが、他のユーザーが作成したプロジェクトに存在する場合は、そのプロジェクトのオーナーから必要な権限を持つロールを付与してもらう必要があります。特に断りのない限り、クライアント ライブラリのリクエストは JSON API を介して行われます。
特定のアクションに必要な権限の一覧については、JSON メソッドの IAM 権限をご覧ください。
関連するロールのリストについては、Cloud Storage のロールをご覧ください。また、特定の制限された権限を持つカスタムロールを作成することもできます。
REST API
JSON API
JSON API を使用してこのガイドを完了するには、適切な IAM 権限が付与されている必要があります。アクセス対象のバケットが、他のユーザーが作成したプロジェクトに存在する場合は、そのプロジェクトのオーナーから必要な権限を持つロールを付与してもらう必要があります。
特定のアクションに必要な権限の一覧については、JSON メソッドの IAM 権限をご覧ください。
関連するロールのリストについては、Cloud Storage のロールをご覧ください。また、特定の制限された権限を持つカスタムロールを作成することもできます。
非現行バージョンのオブジェクトを一覧表示する
オブジェクトのライブ バージョンと非現行バージョンの両方を一覧表示し、generation
番号を表示するには:
Console
- Google Cloud コンソールで、Cloud Storage ブラウザページに移動します。
バケットのリストで、必要なオブジェクトを含むバケットの名前をクリックします。
[バケットの詳細] ページが開き、[オブジェクト] タブが選択されています。
フォルダ内にあるオブジェクトに移動します。
目的のオブジェクトの名前をクリックします。
[オブジェクトの詳細] ページが開きます。[ライブ オブジェクト] タブが選択されています。
[変更履歴] タブをクリックします。
コマンドライン
gcloud
gcloud alpha storage ls --all-versions
コマンドを使用します。
gcloud alpha storage ls --all-versions gs://BUCKET_NAME
BUCKET_NAME
は、該当するバケットの名前です。例: my-bucket
次の例のようなレスポンスになります。
gs://BUCKET_NAME/OBJECT_NAME1#GENERATION_NUMBER1 gs://BUCKET_NAME/OBJECT_NAME2#GENERATION_NUMBER2 gs://BUCKET_NAME/OBJECT_NAME3#GENERATION_NUMBER3 ...
gsutil
gsutil ls -a
コマンドを使用します。
gsutil ls -a gs://BUCKET_NAME
BUCKET_NAME
は、該当するバケットの名前です。例: my-bucket
次の例のようなレスポンスになります。
gs://BUCKET_NAME/OBJECT_NAME1#GENERATION_NUMBER1 gs://BUCKET_NAME/OBJECT_NAME2#GENERATION_NUMBER2 gs://BUCKET_NAME/OBJECT_NAME3#GENERATION_NUMBER3 ...
コードサンプル
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
REST API
JSON API
- OAuth 2.0 Playground から認証アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。手順については、API 認証をご覧ください。
cURL
を使用して、LIST
Object リクエストで JSON API を呼び出します。curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o?versions=true"
ここで
OAUTH2_TOKEN
は、手順 1 で作成したアクセス トークンです。BUCKET_NAME
は、関連するバケットの名前です。例:my-bucket
非現行バージョンのオブジェクトには timeDeleted
プロパティがあります。
XML API
- OAuth 2.0 Playground から認証アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。手順については、API 認証をご覧ください。
cURL
を使用して、GET
Bucket リクエストとversions
クエリ文字列パラメータを含めた XML API を呼び出します。curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/BUCKET_NAME?versions&list-type=2"
ここで
OAUTH2_TOKEN
は、手順 1 で作成したアクセス トークンです。BUCKET_NAME
は、関連するバケットの名前です。例:my-bucket
versions
クエリ文字列パラメータを使用する場合と使用しない場合では、GET
リクエストの結果にいくつかの違いが生じます。具体的には、リクエストに versions
クエリ パラメータを含めると、Cloud Storage から次の情報が返されます。
- 各オブジェクトに関する情報が含まれる
Version
要素。 - オブジェクトが非現行バージョンになった(削除や置換)時間を含む
DeletedTime
要素。 - 特定のオブジェクトが最新バージョンかどうかを示す IsLatest 要素。
- オブジェクトのリストが部分的なリストである場合は、
NextGenerationMarker
要素が返されます。これは、バケットに多数のオブジェクトのバージョンがある場合に発生します。最後のポイントから再開するには、後続のリクエストのgenerationmarker
クエリ パラメータでこの要素の値を使用します。generationmarker
クエリ パラメータは、marker
クエリ パラメータを使用して、バージョニングされていないバケットのリストをページ割り付けするのと同じ方法で使用されます。
非現行バージョンのオブジェクトにアクセスする
オブジェクトのダウンロード、オブジェクトのメタデータの表示、オブジェクトのメタデータの更新などのタスクを実行するときにオブジェクトの非現行バージョンを使用するには:
Console
Google Cloud コンソールでは、非現行バージョンへの一般的なアクセス権は使用できません。Google Cloud コンソールでは、非現行バージョンの移動、コピー、復元、削除のみを行うことができます。これらの操作は、オブジェクトの変更履歴リストから実行します。
コマンドライン
gcloud
オブジェクト名に、非現行バージョンの
generation
番号を追加します。OBJECT_NAME#GENERATION_NUMBER
ここで
OBJECT_NAME
は、非現行バージョンの名前です。例:pets/dog.png
GENERATION_NUMBER
は、非現行バージョンの世代番号です。例:1560468815691234
手順 1 の文字列を使用して、通常のライブ バージョンのオブジェクトの場合と同じように処理します。
gsutil
オブジェクト名に、非現行バージョンの
generation
番号を追加します。OBJECT_NAME#GENERATION_NUMBER
ここで
OBJECT_NAME
は、非現行バージョンの名前です。例:pets/dog.png
GENERATION_NUMBER
は、非現行バージョンの世代番号です。例:1560468815691234
手順 1 の文字列を使用して、通常のライブ バージョンのオブジェクトの場合と同じように処理します。
REST API
JSON API
オブジェクトの URI に非現行バージョンの
generation
番号を追加します。https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?generation=GENERATION_NUMBER
ここで
BUCKET_NAME
は、非現行バージョンを含むバケットの名前です。例:my-bucket
OBJECT_NAME
は、URL エンコードされた非現行バージョンの名前です。例:pets%2Fdog.png
として URL エンコードされているpets/dog.png
GENERATION_NUMBER
は、非現行バージョンの世代番号です。例:1560468815691234
手順 1 の URI を使用して、通常のライブ バージョンのオブジェクトの場合と同じように処理します。
XML API
オブジェクトの URI に非現行バージョンの
generation
番号を追加します。https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME?generation=GENERATION_NUMBER
ここで
BUCKET_NAME
は、非現行バージョンを含むバケットの名前です。例:my-bucket
OBJECT_NAME
は、URL エンコードされた非現行バージョンの名前です。例:pets%2Fdog.png
として URL エンコードされているpets/dog.png
GENERATION_NUMBER
は、非現行バージョンの世代番号です。例:1560468815691234
手順 1 の URI を使用して、通常のライブ バージョンのオブジェクトの場合と同じように処理します。
非現行バージョンのオブジェクトを復元する
Cloud Storage で非現行バージョンのオブジェクトを復元するには、そのオブジェクトのコピーを作成します。この操作を行うと、コピーがライブ バージョンになり、実質的にバージョンが復元されます。すでにライブ バージョンがあり、バケットのオブジェクト バージョニングが有効になっている場合、非現行バージョンを復元すると、それまでのライブ バージョンは非現行になります。
Console
- Cloud Console で、Cloud Storage ブラウザページに移動します。
バケットのリストで、必要なオブジェクトを含むバケットの名前をクリックします。
[バケットの詳細] ページが開き、[オブジェクト] タブが選択されています。
削除したオブジェクトを表示するには、[削除されたデータを表示] トグルをクリックします。
フォルダ内にあるオブジェクトに移動します。
目的のオブジェクトの名前をクリックします。
[オブジェクトの詳細] ページが開きます。[ライブ オブジェクト] タブが選択されています。
[変更履歴] タブをクリックします。
必要なバージョンの [復元] ボタンをクリックします。
オブジェクト バージョンの復元ペインが開きます。
[確認] をクリックします。
コマンドライン
gcloud
gcloud alpha storage cp
コマンドを使用します。
gcloud alpha storage cp gs://BUCKET_NAME/OBJECT_NAME#GENERATION_NUMBER gs://BUCKET_NAME/OBJECT_NAME
ここで
BUCKET_NAME
は、復元する非現行バージョンを含むバケットの名前です。例:my-bucket
OBJECT_NAME
は、復元する非現行バージョンの名前です。例:pets/dog.png
GENERATION_NUMBER
は、復元する非現行バージョンの世代番号です。例:1560468815691234
成功した場合は、次の例のようなレスポンスになります。
Operation completed over 1 objects/58.8 KiB.
gsutil
gsutil cp
コマンドを使用します。
gsutil cp gs://BUCKET_NAME/OBJECT_NAME#GENERATION_NUMBER gs://BUCKET_NAME/OBJECT_NAME
ここで
BUCKET_NAME
は、復元する非現行バージョンを含むバケットの名前です。例:my-bucket
OBJECT_NAME
は、復元する非現行バージョンの名前です。例:pets/dog.png
GENERATION_NUMBER
は、復元する非現行バージョンの世代番号です。例:1560468815691234
成功した場合は、次の例のようなレスポンスになります。
Operation completed over 1 objects/58.8 KiB.
コードサンプル
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
REST API
JSON API
- OAuth 2.0 Playground から認証アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。手順については、API 認証をご覧ください。
cURL
を使用して、POST
Object リクエストで JSON API を呼び出します。curl -X POST \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Length: 0" \ "https://storage.googleapis.com/upload/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME/rewriteTo/b/BUCKET_NAME/o/OBJECT_NAME?sourceGeneration=GENERATION_NUMBER"
ここで
OAUTH2_TOKEN
は、ステップ 1 で生成したアクセス トークンです。BUCKET_NAME
は、復元する非現行バージョンを含むバケットの名前です。例:my-bucket
OBJECT_NAME
は、復元する非現行バージョンの URL エンコード名です。例:pets%2Fdog.png
として URL エンコードされているpets/dog.png
GENERATION_NUMBER
は、復元する非現行バージョンの世代番号です。例:1560468815691234
XML API
- OAuth 2.0 Playground から認証アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。手順については、API 認証をご覧ください。
cURL
を使用して、PUT
Object リクエストで XML API を呼び出します。curl -X PUT \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "x-goog-copy-source: BUCKET_NAME/OBJECT_NAME" \ -H "x-goog-copy-source-generation:GENERATION_NUMBER" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME"
ここで
OAUTH2_TOKEN
は、ステップ 1 で生成したアクセス トークンです。BUCKET_NAME
は、復元する非現行バージョンを含むバケットの名前です。例:my-bucket
OBJECT_NAME
は、復元する非現行バージョンの URL エンコード名です。例:pets%2Fdog.png
として URL エンコードされているpets/dog.png
GENERATION_NUMBER
は、復元する非現行バージョンの世代番号です。例:1560468815691234
オブジェクト バージョンを復元した後、元の非現行バージョンはバケットに存在し続けます。非現行バージョンが不要な場合は、すぐに削除することも、指定した条件を満たしたときに削除されるようオブジェクト ライフサイクル管理を構成することもできます。
非現行バージョンのオブジェクトを削除する
Console
- Cloud Console で、Cloud Storage ブラウザページに移動します。
バケットのリストで、必要なオブジェクトを含むバケットの名前をクリックします。
[バケットの詳細] ページが開き、[オブジェクト] タブが選択されています。
フォルダ内にあるオブジェクトに移動します。
目的のオブジェクトの名前をクリックします。
[オブジェクトの詳細] ページが開きます。[ライブ オブジェクト] タブが選択されています。
[変更履歴] タブをクリックします。
必要なバージョンのチェックボックスをオンにします。
[削除] ボタンをクリックします。
バージョンの削除ペインが開きます。
オブジェクトの削除を確認するため、テキスト ボックスに「
delete
」と入力します。[削除] をクリックします。
コマンドライン
gcloud
gcloud alpha storage rm
コマンドを使用します。
gcloud alpha storage rm gs://BUCKET_NAME/OBJECT_NAME#GENERATION_NUMBER
ここで
BUCKET_NAME
は、削除する非現行バージョンを含むバケットの名前です。例:my-bucket
OBJECT_NAME
は、削除する非現行バージョンの名前です。例:pets/dog.png
GENERATION_NUMBER
は、削除する非現行バージョンの世代番号です。例:1560468815691234
成功した場合は、次の例のようなレスポンスになります。
Operation completed over 1 objects.
gsutil
gsutil rm
コマンドを使用します。
gsutil rm gs://BUCKET_NAME/OBJECT_NAME#GENERATION_NUMBER
ここで
BUCKET_NAME
は、削除する非現行バージョンを含むバケットの名前です。例:my-bucket
OBJECT_NAME
は、削除する非現行バージョンの名前です。例:pets/dog.png
GENERATION_NUMBER
は、削除する非現行バージョンの世代番号です。例:1560468815691234
成功した場合は、次の例のようなレスポンスになります。
Operation completed over 1 objects.
コードサンプル
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
REST API
JSON API
- OAuth 2.0 Playground から認証アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。手順については、API 認証をご覧ください。
cURL
を使用して、DELETE
Object リクエストで JSON API を呼び出します。curl -X DELETE \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?generation=GENERATION_NUMBER"
ここで
OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。BUCKET_NAME
は、削除する非現行バージョンを含むバケットの名前です。例:my-bucket
OBJECT_NAME
は、削除する非現行バージョンの URL エンコード名です。例:pets%2Fdog.png
として URL エンコードされているpets/dog.png
GENERATION_NUMBER
は、削除する非現行バージョンの世代番号です。例:1560468815691234
XML API
- OAuth 2.0 Playground から認証アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。手順については、API 認証をご覧ください。
cURL
を使用して、DELETE
Object リクエストで XML API を呼び出します。curl -X DELETE \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME?generation=GENERATION_NUMBER"
ここで
OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。BUCKET_NAME
は、削除する非現行バージョンを含むバケットの名前です。例:my-bucket
OBJECT_NAME
は、削除する非現行バージョンの URL エンコード名です。例:pets%2Fdog.png
として URL エンコードされているpets/dog.png
GENERATION_NUMBER
は、削除する非現行バージョンの世代番号です。例:1560468815691234
次のステップ
- オブジェクトのバージョニング(詳細な例を含む)についてさらに確認する。
- バケットでオブジェクトのバージョニングを有効または無効にする。
- オブジェクトのライフサイクル管理でオブジェクトのバージョンを自動的に管理する方法を確認する。