リクエスト エンドポイント

このページでは、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 リクエストをご覧ください。詳細と例については、一般公開データへのアクセスをご覧ください。

次のステップ