このページでは、非現行オブジェクトに対して、一覧表示、アクセス、復元、削除を行う方法を説明します。ここで説明する方法は通常、オブジェクトのバージョニングが有効になっているバケットに適用されます。
必要な権限
コンソール
Google Cloud コンソールを使用してこのガイドを完了するには、適切な IAM 権限が必要です。アクセス対象のバケットが、他のユーザーが作成したプロジェクトに存在する場合は、そのプロジェクトのオーナーから必要な権限を持つロールを付与してもらう必要があります。
特定のアクションに必要な権限の一覧については、Google Cloud コンソールに適用される IAM 権限をご覧ください。
関連するロールのリストについては、Cloud Storage のロールをご覧ください。また、特定の制限された権限を持つカスタムロールを作成することもできます。
コマンドライン
コマンドライン ユーティリティを使用してこのガイドを完了するには、適切な IAM 権限が必要です。アクセス対象のバケットが、他のユーザーが作成したプロジェクトに存在する場合は、そのプロジェクトのオーナーから必要な権限を持つロールを付与してもらう必要があります。
特定の操作に必要な権限の一覧については、gsutil コマンドの IAM 権限をご覧ください。
関連するロールのリストについては、Cloud Storage のロールをご覧ください。また、特定の制限された権限を持つカスタムロールを作成することもできます。
クライアント ライブラリ
Cloud Storage クライアント ライブラリを使用してこのガイドを完了するには、適切な IAM 権限が必要です。アクセス対象のバケットが、他のユーザーが作成したプロジェクトに存在する場合は、そのプロジェクトのオーナーから必要な権限を持つロールを付与してもらう必要があります。
特に断りのない限り、クライアント ライブラリのリクエストは JSON API を介して行われ、JSON メソッドの IAM 権限に記載されている権限が必要です。クライアント ライブラリを使用してリクエストを行うときに呼び出される JSON API メソッドを確認するには、元のリクエストをログに記録します。
関連する IAM ロールのリストについては、Cloud Storage のロールをご覧ください。また、特定の制限された権限を持つカスタムロールを作成することもできます。
REST API
JSON API
JSON API を使用してこのガイドを完了するには、適切な IAM 権限が付与されている必要があります。アクセス対象のバケットが、他のユーザーが作成したプロジェクトに存在する場合は、そのプロジェクトのオーナーから必要な権限を持つロールを付与してもらう必要があります。
特定のアクションに必要な権限の一覧については、JSON メソッドの IAM 権限をご覧ください。
関連するロールのリストについては、Cloud Storage のロールをご覧ください。また、特定の制限された権限を持つカスタムロールを作成することもできます。
非現行バージョンのオブジェクトを一覧表示する
オブジェクトのライブ バージョンと非現行バージョンの両方を一覧表示し、generation
番号を表示するには:
コンソール
- Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。
バケットのリストで、必要なオブジェクトを含むバケットの名前をクリックします。
[バケットの詳細] ページが開き、[オブジェクト] タブが選択されています。
フォルダ内にあるオブジェクトに移動します。
目的のオブジェクトの名前をクリックします。
[オブジェクトの詳細] ページが開きます。[ライブ オブジェクト] タブが選択されています。
[変更履歴] タブをクリックします。
コマンドライン
gcloud
gcloud storage ls --all-versions
コマンドを使用します。
gcloud 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 のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
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
クエリ パラメータを使用して、バージョニングされていないバケットのリストをページ割り付けするのと同じ方法で使用されます。
非現行バージョンのオブジェクトにアクセスする
オブジェクトのダウンロード、オブジェクトのメタデータの表示、オブジェクトのメタデータの更新などのタスクを実行するときにオブジェクトの非現行バージョンを使用するには:
コンソール
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 で非現行バージョンのオブジェクトを復元するには、そのオブジェクトのコピーを作成します。この操作を行うと、コピーがライブ バージョンになり、実質的にバージョンが復元されます。すでにライブ バージョンがあり、バケットのオブジェクト バージョニングが有効になっている場合、非現行バージョンを復元すると、それまでのライブ バージョンは非現行になります。
コンソール
- Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。
バケットのリストで、必要なオブジェクトを含むバケットの名前をクリックします。
[バケットの詳細] ページが開き、[オブジェクト] タブが選択されています。
削除したオブジェクトを表示するには、[削除されたデータを表示] トグルをクリックします。
フォルダ内にあるオブジェクトに移動します。
目的のオブジェクトの名前をクリックします。
[オブジェクトの詳細] ページが開きます。[ライブ オブジェクト] タブが選択されています。
[変更履歴] タブをクリックします。
必要なバージョンの [復元] ボタンをクリックします。
オブジェクト バージョンの復元ペインが開きます。
[確認] をクリックします。
コマンドライン
gcloud
gcloud storage cp
コマンドを使用します。
gcloud 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 のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
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
オブジェクト バージョンを復元した後、元の非現行バージョンはバケットに存在し続けます。非現行バージョンが不要な場合は、すぐに削除することも、指定した条件を満たしたときに削除されるようオブジェクト ライフサイクル管理を構成することもできます。
非現行バージョンのオブジェクトを削除する
コンソール
- Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。
バケットのリストで、必要なオブジェクトを含むバケットの名前をクリックします。
[バケットの詳細] ページが開き、[オブジェクト] タブが選択されています。
フォルダ内にあるオブジェクトに移動します。
目的のオブジェクトの名前をクリックします。
[オブジェクトの詳細] ページが開きます。[ライブ オブジェクト] タブが選択されています。
[変更履歴] タブをクリックします。
必要なバージョンのチェックボックスをオンにします。
[削除] ボタンをクリックします。
バージョンの削除ペインが開きます。
オブジェクトの削除を確認するため、テキスト ボックスに「
delete
」と入力します。[削除] をクリックします。
コマンドライン
gcloud
gcloud storage rm
コマンドを使用します。
gcloud 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 のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
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
次のステップ
- オブジェクトのバージョニング(詳細な例を含む)についてさらに確認する。
- バケットでオブジェクトのバージョニングを有効または無効にする。
- オブジェクトのライフサイクル管理でオブジェクトのバージョンを自動的に管理する方法を確認する。