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

このページでは、Cloud Storage にアクセスするために使用できるさまざまなリクエスト エンドポイント(URI)について説明します。

一般的な API リクエスト

Cloud Storage API のいずれかに直接リクエストを発行する場合は、次の URI を使用します。

JSON API

  • オブジェクトのアップロード以外の一般的な JSON API リクエストでは、次のエンドポイントを使用します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。

    https://storage.googleapis.com/storage/v1/[PATH_TO_RESOURCE]
  • JSON API オブジェクトのアップロードでは、次のエンドポイントを使用します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。

    https://storage.googleapis.com/upload/storage/v1/b/[BUCKET_NAME]/o
  • バッチ リクエストでは、次のエンドポイントを使用します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。

    https://storage.googleapis.com/batch/storage/v1/[PATH_TO_RESOURCE]
  • 必要に応じて、JSON API オブジェクトのダウンロードで次のエンドポイントを使用できます。[VALUES_IN_BRACKETS] は適切な値に置き換えてください。

    https://storage.googleapis.com/download/storage/v1/b/[BUCKET_NAME]/o/[OBJECT_NAME]?alt=media

JSON API エンドポイントでは、HTTPS リクエストのみ受け入れられます。

XML API

  • 通常の XML API リクエストの場合、仮想ホスト型エンドポイントまたはパス型エンドポイントのいずれかを使用でき、[VALUES_IN_BRACKETS] を適切な値に置き換えます。

    仮想ホスト型の場合:

    https://[BUCKET_NAME].storage.googleapis.com/[OBJECT_NAME]
    パス型の場合:
    https://storage.googleapis.com/[BUCKET_NAME]/[OBJECT_NAME]

オプションで、Cloud Storage には、アップロード用およびダウンロード用に専用の XML API エンドポイントが用意されています。大量のデータを転送する際に、アップロード用およびダウンロード用のこれらのエンドポイントを使用すると、多少のパフォーマンス上の利点を得られる場合があります。

  • アップロードの場合、仮想ホスト型またはパス型のエンドポイントを使用でき、[VALUES_IN_BRACKETS] を適切な値に置き換えます。

    仮想ホスト型の場合:

    https://[BUCKET_NAME].storage-upload.googleapis.com/[OBJECT_NAME]
    パス型の場合:
    https://storage-upload.googleapis.com/[BUCKET_NAME]/[OBJECT_NAME]

  • ダウンロードの場合、仮想ホスト型またはパス型のエンドポイントを使用でき、[VALUES_IN_BRACKETS] を適切な値に置き換えます。

    仮想ホスト型の場合:

    https://[BUCKET_NAME].storage-download.googleapis.com/[OBJECT_NAME]
    パス型の場合:
    https://storage-download.googleapis.com/[BUCKET_NAME]/[OBJECT_NAME]

すべての XML API エンドポイントでは、SSL(Secure Sockets Layer)暗号化がサポートされています。つまり、HTTP または HTTPS のどちらでも使用できます。特に、Cloud Storage に対して OAuth 2.0 を使用して認証する場合は、HTTPS を使用することをおすすめします。

プロキシ経由で接続する場合におすすめする方法については、トラブルシューティングをご覧ください。

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

あらゆるシナリオですべての文字をエンコードする必要はありません。たとえば、/ 文字をエンコードする必要があるのは、JSON API を使用して書き換えまたはコピーを行う場合に、このような書き換えやコピーでソース オブジェクトに対してのみです。

URI に percent-encoded を使用する方法については、RFC 3986 の Section 3.3 Path をご覧ください。通常、エンコードは Cloud Storage クライアント ライブラリなどのクライアント ライブラリで処理されるので、未加工のオブジェクト名をライブラリに渡すことが可能です。

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]

CNAME リダイレクト

CNAME リダイレクトは、実際の XML API URL を明かすことなく、Cloud Storage 内のリソースに、自分のドメインから XML API によりアクセスするための特別な DNS レコードです。そのためには、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 アカウントに、IAM ポリシーまたはアクセス制御リストを通じて許可された、リソースにアクセスするための適切な権限が必要です。

Cookie ベースの認証を使用してオブジェクトをダウンロードするには、次の URL を使用します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。

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 リダイレクトの使用を試みます。認証によるブラウザでのダウンロードの詳細については、Cookie ベースの認証をご覧ください。

一般公開オブジェクトへのアクセス

storage.cloud.google.com URI へのリクエストでは、すべて認証が必要です。これは、オブジェクトへのアクセス権限が allUsers に付与されている場合でも適用されます。ユーザーが認証なしで匿名でアクセスできるオブジェクトをダウンロードできるようにするには、storage.googleapis.com URI を使用します。詳細については、直接 API リクエストをご覧ください。詳細と例については、一般公開データへのアクセスをご覧ください。

次のステップ