このページでは、Cloud Storage のバケットから永続ストレージにオブジェクトをダウンロードする方法について説明します。オブジェクトをメモリにダウンロードすることもできます。
必要なロール
オブジェクトのダウンロードに必要な権限を取得するには、バケットに対するストレージ オブジェクト閲覧者(roles/storage.objectViewer
)ロールを付与するよう管理者に依頼してください。Google Cloud コンソールを使用する場合は、バケットに対するストレージ管理者(roles/storage.admin
)ロールを付与するよう管理者に依頼してください。
これらのロールには、オブジェクトをダウンロードするために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
storage.buckets.list
- この権限は、Google Cloud コンソールを使用してこのページのタスクを実行する場合にのみ必要です。
storage.objects.get
storage.objects.list
- この権限は、Google Cloud コンソールを使用してこのページのタスクを実行する場合にのみ必要です。
これらの権限は、他の事前定義ロールやカスタムロールを使用して取得することもできます。
バケットに対してロールを付与する手順については、バケットで IAM を使用するをご覧ください。
バケットからオブジェクトをダウンロードする
バケットからオブジェクトをダウンロードするには、次の手順を行います。
コンソール
- Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。
バケットのリストで、ダウンロードするオブジェクトを含むバケットの名前をクリックします。
[バケットの詳細] ページが開き、[オブジェクト] タブが選択されています。
フォルダ内にあるオブジェクトに移動します。
オブジェクトに関連付けられた [ダウンロード] アイコンをクリックします。
ブラウザの設定で、オブジェクトのダウンロード場所を制御します。
失敗した Cloud Storage オペレーションの詳細なエラー情報を Google Cloud コンソールで確認する方法については、トラブルシューティングをご覧ください。
コマンドライン
gcloud storage cp
コマンドを使用します。
gcloud storage cp gs://BUCKET_NAME/OBJECT_NAME SAVE_TO_LOCATION
ここで
BUCKET_NAME
は、ダウンロードするオブジェクトが格納されているバケットの名前です。例:my-bucket
OBJECT_NAME
は、ダウンロードするオブジェクトの名前です。例:pets/dog.png
SAVE_TO_LOCATION
は、オブジェクトを保存するローカルパスです。例:Desktop/Images
成功した場合は、次の例のようなレスポンスになります。
Completed files 1/1 | 164.3kiB/164.3kiB
完了前にダウンロードが中断した場合は、同じ cp
コマンドを実行して、中断した場所からダウンロードを再開します。
クライアント ライブラリ
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
gcloud CLI のインストールと初期化を行います。これにより、
Authorization
ヘッダーのアクセス トークンを生成できます。cURL
を使用して、GET
Object リクエストで JSON API を呼び出します。curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -o "SAVE_TO_LOCATION" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?alt=media"
ここで
SAVE_TO_LOCATION
は、オブジェクトを保存する場所へのパスです。例:Desktop/dog.png
BUCKET_NAME
は、ダウンロードするオブジェクトが格納されているバケットの名前です。例:my-bucket
OBJECT_NAME
は、ダウンロードするオブジェクトの URL エンコードされた名前です。例:pets%2Fdog.png
として URL エンコードされているpets/dog.png
XML API
gcloud CLI のインストールと初期化を行います。これにより、
Authorization
ヘッダーのアクセス トークンを生成できます。cURL
を使用して、GET
Object リクエストで XML API を呼び出します。curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -o "SAVE_TO_LOCATION" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME"
ここで
SAVE_TO_LOCATION
は、オブジェクトを保存する場所へのパスです。例:Desktop/dog.png
BUCKET_NAME
は、ダウンロードするオブジェクトが格納されているバケットの名前です。例:my-bucket
OBJECT_NAME
は、ダウンロードするオブジェクトの URL エンコードされた名前です。例:pets%2Fdog.png
として URL エンコードされているpets/dog.png
バケットまたはサブディレクトリ内のすべてのオブジェクトをより効率よくダウンロードするには、gcloud storage cp
コマンドまたはクライアント ライブラリを使用します。
オブジェクトの一部をダウンロードする
ダウンロードが中断された場合は、残りのオブジェクトのみをリクエストすることで、中断した場所からダウンロードを再開できます。オブジェクトの一部をダウンロードするには、次の手順を行います。
コンソール
Google Cloud コンソールでは、オブジェクトの一部をダウンロードすることはできません。代わりに gcloud CLI を使用してください。
コマンドライン
Google Cloud CLI は、ストリーミング ダウンロードを実行する場合を除き、中断されたダウンロードを自動的に再開しようとします。ダウンロードが中断された場合、部分的にダウンロードされた一時ファイルは宛先の階層に表示されます。同じ cp
コマンドを実行して、中断した場所からダウンロードを再開します。
ダウンロードが完了すると、一時ファイルが削除され、ダウンロードされたコンテンツに置き換えられます。デフォルトでは、一時ファイルは .config/gcloud/surface_data/storage/tracker_files
のユーザーのホーム ディレクトリにあるに保存されます。この場所は構成可能です。gcloud config get storage/tracker_files_directory
を実行すると、一時ファイルの保存場所を変更または表示できます。
クライアント ライブラリ
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
リクエスト内の Range
ヘッダーを使用して、オブジェクトの一部をダウンロードします。
gcloud CLI のインストールと初期化を行います。これにより、
Authorization
ヘッダーのアクセス トークンを生成できます。cURL
を使用して、GET
Object リクエストで JSON API を呼び出します。curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Range: bytes=FIRST_BYTE-LAST_BYTE" \ -o "SAVE_TO_LOCATION" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?alt=media"
ここで
FIRST_BYTE
は、ダウンロードするバイト範囲の最初のバイトです。例:1000
LAST_BYTE
は、ダウンロードするバイト範囲の最後のバイトです。例:1999
SAVE_TO_LOCATION
は、オブジェクトを保存する場所へのパスです。例:Desktop/dog.png
BUCKET_NAME
は、ダウンロードするオブジェクトが格納されているバケットの名前です。例:my-bucket
OBJECT_NAME
は、ダウンロードするオブジェクトの URL エンコードされた名前です。例:pets%2Fdog.png
として URL エンコードされているpets/dog.png
XML API
リクエスト内の Range
ヘッダーを使用して、オブジェクトの一部をダウンロードします。
gcloud CLI のインストールと初期化を行います。これにより、
Authorization
ヘッダーのアクセス トークンを生成できます。cURL
を使用して、GET
Object リクエストで XML API を呼び出します。curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Range: bytes=FIRST_BYTE-LAST_BYTE" \ -o "SAVE_TO_LOCATION" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME"
ここで
FIRST_BYTE
は、ダウンロードするバイト範囲の最初のバイトです。例:1000
LAST_BYTE
は、ダウンロードするバイト範囲の最後のバイトです。例:1999
SAVE_TO_LOCATION
は、オブジェクトを保存する場所へのパスです。例:$HOME/Desktop/dog.png
BUCKET_NAME
は、ダウンロードするオブジェクトが格納されているバケットの名前です。例:my-bucket
OBJECT_NAME
は、ダウンロードするオブジェクトの URL エンコードされた名前です。例:pets%2Fdog.png
として URL エンコードされているpets/dog.png
次のステップ
- アップロードとダウンロードのコンセプトの概要で、高度なダウンロード方法などを確認する。
- クラウド プロバイダまたはその他のオンライン ソースからデータを転送する(URL リストを使用するなど)。
- Compute Engine インスタンスにオブジェクトを転送する。
- Cloud Storage のアクセス料金をリクエスト元に請求する方法を学習する。
- gzip で圧縮されたファイルを Cloud Storage で圧縮されていない状態で処理する方法を学習する。
使ってみる
Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Cloud Storage のパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
Cloud Storage を無料で試す