このページでは、Cloud Storage にアクセスするために使用できるさまざまなリクエスト エンドポイントについて説明します。Cloud Storage は、HTTP/1.1、HTTP/2、HTTP/3 プロトコルをサポートしています。エンドポイントは Cloud Storage にアクセスできる場所で、URL として記述されます。
一般的な API リクエスト
JSON API
Cloud Storage に対して直接 JSON API リクエストを送信する場合は、次のエンドポイントを使用します。
オブジェクトのアップロード以外の一般的な JSON API リクエストの場合、次のエンドポイントを使用します。
PATH_TO_RESOURCE
は適切な値に置き換えます。https://storage.googleapis.com/storage/v1/PATH_TO_RESOURCE
JSON API オブジェクトのアップロードでは、次のエンドポイントを使用します。
BUCKET_NAME
は適切な値に置き換えます。https://storage.googleapis.com/upload/storage/v1/b/BUCKET_NAME/o
バッチ リクエストでは、次のエンドポイントを使用します。
PATH_TO_RESOURCE
は適切な値に置き換えます。https://storage.googleapis.com/batch/storage/v1/PATH_TO_RESOURCE
必要に応じて、JSON API オブジェクトのダウンロードで次のエンドポイントを使用できます。
BUCKET_NAME
とOBJECT_NAME
は適切な値に置き換えてください。https://storage.googleapis.com/download/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?alt=media
JSON API エンドポイントでは、HTTPS リクエストのみ受け入れられます。
XML API
Cloud Storage に直接 XML API リクエストを送信する場合は、仮想ホスト形式またはパス形式のエンドポイントを使用します。BUCKET_NAME
と OBJECT_NAME
は適切な値に置き換えます。
仮想ホスト形式のエンドポイント:
https://BUCKET_NAME.storage.googleapis.com/OBJECT_NAME
パス形式のエンドポイント:
https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME
XML API エンドポイントでは、SSL(Secure Sockets Layer)暗号化がサポートされているため、HTTP または HTTPS のいずれかを使用できます。HTTPS の使用をおすすめします。特に、Cloud Storage に対して OAuth 2.0 を使用して認証する場合は、この方法をおすすめします。
プロキシ経由で接続する場合におすすめする方法については、トラブルシューティングをご覧ください。
URL パス部分のエンコード
バケットの命名とオブジェクトの命名に関する一般的な考慮事項に加えて、Cloud Storage ツール間の互換性を確保するために、リクエスト URL のオブジェクト名またはクエリ文字列に表示される次の文字をエンコードする必要があります。
!
、#
、$
、&
、'
、(
、)
、*
、+
、,
、/
、:
、;
、=
、?
、@
、[
、]
、スペース文字。
たとえば、バケット example-bucket
内の foo??bar
という名前のオブジェクトに対する JSON API GET
リクエストを送信する場合、リクエスト URL は次のようになります。
GET https://storage.googleapis.com/storage/v1/b/example-bucket/o/foo%3f%3fbar
あらゆるシナリオですべての文字をエンコードする必要はありません。さらに、エンコードは通常クライアント ライブラリ(Cloud Storage クライアント ライブラリなど)によって処理されるため、このようなツールの使用時には、未加工のオブジェクト名を渡すことができます。
percent-encoding の使用方法の詳細については、RFC 3986 の Section 3.3 Path をご覧ください。
Google Cloud コンソール エンドポイント
Google Cloud コンソールを使用する場合は、次の URL を使用してさまざまなリソースにアクセスします。
リソース | URL |
---|---|
プロジェクトのバケット リスト | https://console.cloud.google.com/storage/browser?project=PROJECT_ID |
バケットのオブジェクト リスト | https://console.cloud.google.com/storage/browser/BUCKET_NAME |
オブジェクトの詳細 | https://console.cloud.google.com/storage/browser/_details/BUCKET_NAME/OBJECT_NAME |
オブジェクトのデータ | 認証済みのブラウザでのダウンロードをご覧ください。 |
gcloud エンドポイント
gcloud storage
コマンドは、JSON API エンドポイントを使用します。エンドポイントの使用は gcloud CLI によって管理されます。
クライアント ライブラリ エンドポイント
Cloud Storage クライアント ライブラリは、リクエスト エンドポイントを自動的に管理します。必要に応じて、リクエスト エンドポイントを手動で設定できます。これは、特定のエンドポイントを使用する場合や、テキスト目的でローカル エミュレータを使用する場合などに便利です。
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 に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
カスタム ドメイン
独自のドメインを所有している場合は、Cloud Storage バケットなどの 1 つ以上の Google Cloud サービスに URI をマッピングできます。この「バケットにバインドされたホスト名」という用語が、この Cloud Storage リクエスト エンドポイントを説明する際に使用されることがあります。カスタム ドメインを Cloud Storage バケットに接続するには、DNS レコードに A
または CNAME
リダイレクトを作成します。
A
レコード
通常、カスタム ドメインを Cloud Storage バケットに接続する場合は、A
レコードを使用します。
A
レコードはHTTPS
リクエストをサポートします。A
レコードは、単一のホスト名から複数のバケットや、他の Google Cloud サービスにトラフィックを送信するために使用できます。A
レコードでは、バケット名に対して制限を設けません。
A
レコードを使用する場合は、Google Cloud リソースに追加の設定を行って使用する必要があります。A
レコードでカスタム ドメインを使用するためのガイドとして、ロードバランサと SSL 証明書の設定をご覧ください。
CNAME
レコード
カスタム ドメインを Cloud Storage バケットに接続する場合は、CNAME
レコードを使用できますが、一定の制限事項があります。
CNAME
レコードでは、HTTP
リクエストしかサポートされません。CNAME
レコードでは、特定のホスト名から 1 つのバケットにしかトラフィックを転送できません。CNAME
レコードでは、ホスト名と、対応させる関連バケット名が必要です。また、バケット名は検証する必要があります。CNAME
レコードは、www.mydomain.com
などのサブドメインにのみ使用できます。mydomain.com
などのトップレベル ドメインには使用できません。
CNAME
レコードを使用する場合は、CNAME
レコードのホスト名の部分を次のように設定する必要があります。
c.storage.googleapis.com.
たとえば、ドメインが example.com
で、ユーザーにトラベルマップを提供するとします。Cloud Storage に travel-maps.example.com
というバケットを作成した後、travel-maps.example.com
から Cloud Storage URI にリクエストをリダイレクトする CNAME
レコードを DNS に作成できます。そのためには、DNS で次の CNAME
レコードを公開します。
NAME TYPE DATA travel-maps CNAME c.storage.googleapis.com.
これで、ユーザーは次の URL を使用してパリの地図にアクセスできます。
http://travel-maps.example.com/paris.jpg
ご利用のドメイン登録サービスに、CNAME
リソース レコードの追加など、ドメインを管理するための手段があるはずです。たとえば、Cloud DNS を使用する場合は、レコードの追加、変更、削除ページでリソース レコードの追加手順を確認できます。
認証によるブラウザでのダウンロード
認証によるブラウザでのダウンロードでは、Cookie ベースの認証を使用します。Cookie ベースの認証では、ユーザーは各自のユーザー アカウントにログインして自分の身元を証明するよう求められます。指定したユーザー アカウントは、オブジェクトをダウンロードするための適切な権限を持っている必要があります。たとえば、Identity and Access Management を使用してオブジェクトへのアクセスを制御する場合、そのユーザーのアカウントは、storage.objects.viewer
権限を持っている必要があります。この権限は、Storage オブジェクト閲覧者ロールで付与されます。
Cookie ベースの認証を使用してオブジェクトをダウンロードするには、次の URL を使用します。BUCKET_NAME
と OBJECT_NAME
は適切な値に置き換えます。
https://storage.cloud.google.com/BUCKET_NAME/OBJECT_NAME
たとえば、バケット example-maps
に含まれる画像 london.jpg
を共有したとすると、URL は次のようになります。
https://storage.cloud.google.com/example-maps/london.jpg
正常にログインすると、リクエストしたコンテンツにリダイレクトされます。このコンテンツの URL は英数字シーケンスで始まり、文字列 /download/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME
を含んでいます。
認証によるブラウザでのダウンロードを行うには、HTTPS を使用する必要があります。HTTPS への HTTP リダイレクトの使用を試みます。
一般公開オブジェクトへのアクセス
storage.cloud.google.com
URI へのリクエストでは、すべて認証が必要です。これは、オブジェクトへのアクセス権限が allUsers
に付与されている場合でも適用されます。ユーザーが認証なしで匿名でアクセスできるオブジェクトをダウンロードできるようにするには、XML API のパス形式のエンドポイントを使用します。
https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME
詳細と例については、一般公開データへのアクセスをご覧ください。
相互 TLS のサポート
相互 TLS(mTLS)は、クライアントとサーバーの間で相互認証を行うための業界標準プロトコルです。Cloud Storage は、次の mTLS エンドポイントをサポートしています。JSON API リクエスト:
storage.mtls.googleapis.com
認証によるブラウザでのダウンロード:
storage.mtls.cloud.google.com
次のステップ
- Cloud Storage にファイルをアップロードする。
- Cloud Storage からファイルをダウンロードする。
- 静的ウェブサイトをホストする。
- データへのアクセスを制御するオプションについて学習する。