このページでは、Cloud Storage にアクセスするために使用できるさまざまなリクエスト エンドポイント(URI)について説明します。
一般的な 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 |
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 アカウントに適切な権限が必要です。たとえば、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 からファイルをダウンロードする。
- 静的ウェブサイトをホストする。
- データへのアクセスを制御するオプションについて学習する。