このページでは、Cloud Storage バケットにオブジェクトをアップロードする方法を説明します。アップロードされるオブジェクトは、保存するデータとそれに関連するメタデータから構成されます。ファイルサイズに基づいた最適なアップロード方法を選択する方法など、コンセプトの概要については、アップロードとダウンロードをご覧ください。
前提条件
前提条件は使用するツールによって異なります。
コンソール
Google Cloud コンソールを使用してこのガイドを完了するには、適切な IAM 権限が必要です。アップロードするバケットが、自分で作成していないプロジェクトに存在する場合は、プロジェクト オーナーから必要な権限を持つロールを付与してもらう必要があります。
特定のアクションに必要な権限の一覧については、Google Cloud コンソールに適用される IAM 権限をご覧ください。
関連するロールのリストについては、Cloud Storage のロールをご覧ください。また、特定の制限された権限を持つカスタムロールを作成することもできます。
コマンドライン
コマンドライン ユーティリティを使用してこのガイドを完了するには、適切な IAM 権限が必要です。アップロードするバケットが、自分で作成していないプロジェクトに存在する場合は、プロジェクト オーナーから必要な権限を持つロールを付与してもらう必要があります。
特定の操作に必要な権限の一覧については、gsutil コマンドの IAM 権限をご覧ください。
関連するロールのリストについては、Cloud Storage のロールをご覧ください。また、特定の制限された権限を持つカスタムロールを作成することもできます。
コードサンプル
Cloud Storage クライアント ライブラリを使用してこのガイドを完了するには、適切な IAM 権限が必要です。アップロードするバケットが、自分で作成していないプロジェクトに存在する場合は、プロジェクト オーナーから必要な権限を持つロールを付与してもらう必要があります。特に断りのない限り、クライアント ライブラリのリクエストは JSON API を介して行われます。
特定のアクションに必要な権限の一覧については、JSON メソッドの IAM 権限をご覧ください。
関連するロールのリストについては、Cloud Storage のロールをご覧ください。また、特定の制限された権限を持つカスタムロールを作成することもできます。
REST API
JSON API
JSON API を使用してこのガイドを完了するには、適切な IAM 権限が付与されている必要があります。アップロードするバケットが、自分で作成していないプロジェクトに存在する場合は、プロジェクト オーナーから必要な権限を持つロールを付与してもらう必要があります。
特定のアクションに必要な権限の一覧については、JSON メソッドの IAM 権限をご覧ください。
関連するロールのリストについては、Cloud Storage のロールをご覧ください。または、特定の制限された権限を持つカスタムロールを作成することもできます。
バケットにオブジェクトをアップロードする
オブジェクトをバケットにアップロードするには、次の手順を行います。
コンソール
- Google Cloud コンソールで、Cloud Storage ブラウザページに移動します。
バケットのリストで、オブジェクトをアップロードするバケットの名前をクリックします。
バケットの [オブジェクト] タブで次のいずれかを行います。
デスクトップまたはファイル マネージャーから目的のファイルを Google Cloud コンソールのメインペインにドラッグ&ドロップします。
[ファイルをアップロード] ボタンをクリックし、表示されたダイアログでアップロードするファイルを選択し、[開く] をクリックします。
失敗したオペレーションに関する詳細なエラー情報を Cloud Storage ブラウザで確認する方法については、トラブルシューティングをご覧ください。
コマンドライン
gsutil cp
コマンドを使用します。
gsutil cp OBJECT_LOCATION gs://DESTINATION_BUCKET_NAME/
ここで
OBJECT_LOCATION
は、オブジェクトへのローカルパスです。例:Desktop/dog.png
DESTINATION_BUCKET_NAME
は、オブジェクトをアップロードするバケットの名前です。例:my-bucket
成功した場合は、次の例のようなレスポンスになります。
Operation completed over 1 objects/58.8 KiB.
-h
グローバル オプションを使用すると、リクエストのヘッダーにアップロードしたオブジェクトの一部として、固定キーとカスタム オブジェクト メタデータを設定できます。
コードサンプル
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
次のサンプルでは、ファイルからオブジェクトをアップロードします。
次のサンプルでは、メモリからオブジェクトをアップロードします。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
次のサンプルでは、ファイルからオブジェクトをアップロードします。
次のサンプルでは、メモリからオブジェクトをアップロードします。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
次のサンプルでは、ファイルからオブジェクトをアップロードします。
次のサンプルでは、メモリからオブジェクトをアップロードします。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
次のサンプルでは、ファイルからオブジェクトをアップロードします。
次のサンプルでは、メモリからオブジェクトをアップロードします。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
次のサンプルでは、ファイルからオブジェクトをアップロードします。
次のサンプルでは、メモリからオブジェクトをアップロードします。
PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
次のサンプルでは、ファイルからオブジェクトをアップロードします。
次のサンプルでは、メモリからオブジェクトをアップロードします。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
次のサンプルでは、ファイルからオブジェクトをアップロードします。
次のサンプルでは、メモリからオブジェクトをアップロードします。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
次のサンプルでは、ファイルからオブジェクトをアップロードします。
次のサンプルでは、メモリからオブジェクトをアップロードします。
Terraform
Terraform リソースを使用してオブジェクトをアップロードできます。content
または source
を指定する必要があります(両方を指定することもできます)。
REST API
JSON API
オブジェクト メタデータのない単一のリクエストのアップロード
- OAuth 2.0 Playground から認証アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。手順については、API 認証をご覧ください。
cURL
を使用して、POST
Object リクエストで JSON API を呼び出します。curl -X POST --data-binary @OBJECT_LOCATION \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: OBJECT_CONTENT_TYPE" \ "https://storage.googleapis.com/upload/storage/v1/b/BUCKET_NAME/o?uploadType=media&name=OBJECT_NAME"
ここで
OBJECT_LOCATION
は、オブジェクトへのローカルパスです。例:Desktop/dog.png
OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。OBJECT_CONTENT_TYPE
は、オブジェクトのコンテンツ タイプです。例:image/png
BUCKET_NAME
は、オブジェクトをアップロードするバケットの名前です。例:my-bucket
OBJECT_NAME
は、オブジェクトに付ける URL エンコードの名前です。例:pets%2Fdog.png
として URL エンコードされているpets/dog.png
オブジェクトのメタデータを含む単一のリクエストのアップロード
- OAuth 2.0 Playground から認証アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。手順については、API 認証をご覧ください。
次の情報が含まれる
multipart/related
ファイルを作成します。--BOUNDARY_STRING Content-Type: application/json; charset=UTF-8 OBJECT_METADATA --BOUNDARY_STRING Content-Type: OBJECT_CONTENT_TYPE OBJECT_DATA --BOUNDARY_STRING--
ここで
BOUNDARY_STRING
は、マルチパート ファイルのさまざまな部分を識別するように定義する文字列です。例:my-boundary
OBJECT_METADATA
は、ファイルに含めるメタデータ(JSON 形式)です。少なくとも、このセクションにはオブジェクトのname
属性({"name": "myObject"}
など)を含める必要があります。OBJECT_CONTENT_TYPE
は、オブジェクトのコンテンツ タイプです。例:image/png
OBJECT_DATA
はオブジェクトのデータです。
cURL
を使用して、POST
Object リクエストで JSON API を呼び出します。curl -X POST --data-binary @MULTIPART_FILE_LOCATION \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: multipart/related; boundary=BOUNDARY_STRING" \ -H "Content-Length: MULTIPART_FILE_SIZE" \ "https://storage.googleapis.com/upload/storage/v1/b/BUCKET_NAME/o?uploadType=multipart"
ここで
MULTIPART_FILE_LOCATION
は、手順 2 で作成したマルチパート ファイルのローカルパスです。例:Desktop/my-upload.multipart
OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。BOUNDARY_STRING
は、手順 2 で定義した境界文字列です。例:my-boundary
MULTIPART_FILE_SIZE
は、手順 2 で作成したマルチパート ファイルの合計サイズ(バイト単位)です。例:2000000
BUCKET_NAME
は、オブジェクトをアップロードするバケットの名前です。例:my-bucket
リクエストが成功すると、HTTP 200 OK
ステータス コードとファイルのメタデータがサーバーから返されます。
XML API
- OAuth 2.0 Playground から認証アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。手順については、API 認証をご覧ください。
cURL
を使用して、PUT
Object リクエストで XML API を呼び出します。curl -X PUT --data-binary @OBJECT_LOCATION \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: OBJECT_CONTENT_TYPE" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME"
ここで
OBJECT_LOCATION
は、オブジェクトへのローカルパスです。例:Desktop/dog.png
OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。OBJECT_CONTENT_TYPE
は、オブジェクトのコンテンツ タイプです。例:image/png
BUCKET_NAME
は、オブジェクトをアップロードするバケットの名前です。例:my-bucket
OBJECT_NAME
は、オブジェクトに付ける URL エンコードの名前です。例:pets%2Fdog.png
として URL エンコードされているpets/dog.png
Content-Type
を設定する上述の例と同じ方法で、リクエストのヘッダーにアップロードしたオブジェクトの一部として、追加のオブジェクト メタデータを設定できます。XML API を使用する場合は、オブジェクトを書き込むときだけに(オブジェクトのアップロード、コピー、置き換えなど)メタデータを設定できます。詳細については、オブジェクトのメタデータの編集をご覧ください。
次のステップ
- オブジェクトの命名要件について学習する。
- Compute Engine インスタンスからオブジェクトを転送する。
- クラウド プロバイダまたはその他のオンライン ソースからデータを転送する(URL リストなど)。
- オブジェクトとバケットにアクセスできるユーザーを制御する。
- オブジェクトのメタデータを表示する(オブジェクトの URL を含む)。
使ってみる
Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Cloud Storage のパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
Cloud Storage 無料トライアル