このページでは、Cloud Storage にアクセスするために使用できるさまざまなリクエスト エンドポイント(URI)について説明します。 Cloud Storage は、HTTP/1.1、HTTP/2、HTTP/3 プロトコルをサポートしています。
一般的な API リクエスト
Cloud Storage API のいずれかに直接リクエストを発行する場合は、次の URI を使用します。
JSON API
オブジェクトのアップロード以外の一般的な JSON API リクエストでは、次のエンドポイントを使用します。
PLACEHOLDER
は適切な値に置き換えます。https://storage.googleapis.com/storage/v1/PATH_TO_RESOURCE
JSON API オブジェクトのアップロードでは、次のエンドポイントを使用します。
PLACEHOLDER
は適切な値に置き換えます。https://storage.googleapis.com/upload/storage/v1/b/BUCKET_NAME/o
バッチ リクエストでは、次のエンドポイントを使用します。
PLACEHOLDER
は適切な値に置き換えます。https://storage.googleapis.com/batch/storage/v1/PATH_TO_RESOURCE
必要に応じて、JSON API オブジェクトのダウンロードで次のエンドポイントを使用できます。
PLACEHOLDER
は適切な値に置き換えてください。https://storage.googleapis.com/download/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?alt=media
JSON API エンドポイントでは、HTTPS リクエストのみ受け入れられます。
XML API
XML API リクエストの場合、仮想ホスト型またはパス型のエンドポイントを使用して
PLACEHOLDER
を適切な値に置き換えます。仮想ホスト型の場合:
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 を使用して認証する場合は、この方法をおすすめします。
プロキシ経由で接続する場合におすすめする方法については、トラブルシューティングをご覧ください。
URI パス部分のエンコード
バケットの命名とオブジェクトの命名に関する一般的な考慮事項に加えて、Cloud Storage ツール間の互換性を確保するために、リクエスト URI のオブジェクト名またはクエリ文字列に表示される次の文字をエンコードする必要があります。
!
、#
、$
、&
、'
、(
、)
、*
、+
、,
、/
、:
、;
、=
、?
、@
、[
、]
、スペース文字。
たとえば、バケット example-bucket
内の foo??bar
という名前のオブジェクトに対する JSON API GET
リクエストを送信する場合、リクエスト URI は次のようになります。
GET https://storage.googleapis.com/storage/v1/b/example-bucket/o/foo%3f%3fbar
あらゆるシナリオですべての文字をエンコードする必要はありません。さらに、エンコードは通常クライアント ライブラリ(Cloud Storage クライアント ライブラリなど)によって処理されるため、このようなツールの使用時には、未加工のオブジェクト名を渡すことができます。
URI に percent-encoded を使用する方法については、RFC 3986 の Section 3.3 Path をご覧ください。
Cloud Console エンドポイント
Cloud Console を使用する場合は、次の 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 |
カスタム ドメイン
独自のドメインを所有している場合は、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
レコードのホスト名部分に次の URI を追加する必要があります。
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.example.com CNAME c.storage.googleapis.com.
これで、ユーザーは次の URL を使用してパリの地図にアクセスできます。
http://travel-maps.example.com/paris.jpg
ご利用のドメイン登録サービスに、CNAME
リソース レコードの追加など、ドメインを管理するための手段があるはずです。たとえば、Google Domains を使用する場合は、Google Domains ヘルプページの [リソース レコード] プルダウン セクションでリソース レコードの追加手順を確認できます。
認証によるブラウザでのダウンロード
認証によるブラウザでのダウンロードでは、Cookie ベースの認証を使用します。Cookie ベースの認証では、ユーザーは各自の Google アカウントにログインして自分の身元を証明するよう求められます。指定した Google アカウントは、オブジェクトをダウンロードするための適切な権限を持っている必要があります。たとえば、Identity and Access Management を使用してオブジェクトへのアクセスを制御する場合、そのユーザーの Google アカウントは、storage.objects.viewer
権限を持っている必要があります。この権限は、Storage オブジェクト閲覧者ロールで付与されます。
Cookie ベースの認証を使用してオブジェクトをダウンロードするには、次の URL を使用します。PLACEHOLDER
は適切な値に置き換えます。
https://storage.cloud.google.com/BUCKET_NAME/OBJECT_NAME
たとえば、バケット example-maps
に含まれる画像 london.jpg
を共有したとすると、URL は次のようになります。
https://storage.cloud.google.com/example-maps/london.jpg
認証によるブラウザでのダウンロードを行うには、HTTPS を使用する必要があります。HTTPS への HTTP リダイレクトの使用を試みます。
一般公開オブジェクトへのアクセス
storage.cloud.google.com
URI へのリクエストでは、すべて認証が必要です。これは、オブジェクトへのアクセス権限が allUsers
に付与されている場合でも適用されます。ユーザーが認証なしで匿名でアクセスできるオブジェクトをダウンロードできるようにするには、storage.googleapis.com
URI を使用します。詳細については、直接 API リクエストをご覧ください。詳細と例については、一般公開データへのアクセスをご覧ください。
次のステップ
- Cloud Storage にファイルをアップロードする。
- Cloud Storage からファイルをダウンロードする。
- 静的ウェブサイトをホストする。
- データへのアクセスを制御するオプションについて学習する。