このページでは、ローカル ファイル システムから Cloud Storage バケットにオブジェクトをアップロードする方法について説明します。アップロードされるオブジェクトは、保存するデータとそれに関連するメタデータから構成されます。ファイルサイズに基づいた最適なアップロード方法を選択する方法など、コンセプトの概要については、アップロードとダウンロードをご覧ください。
メモリからアップロードする手順については、メモリからオブジェクトをアップロードするをご覧ください。
必要な権限
コンソール
Google Cloud コンソールを使用してこのガイドを完了するには、適切な IAM 権限が必要です。アップロードするバケットが、自分で作成していないプロジェクトに存在する場合は、プロジェクト オーナーから必要な権限を持つロールを付与してもらう必要があります。
特定のアクションに必要な権限の一覧については、Google Cloud コンソールに適用される IAM 権限をご覧ください。
関連するロールのリストについては、Cloud Storage のロールをご覧ください。また、特定の制限された権限を持つカスタムロールを作成することもできます。
コマンドライン
コマンドライン ユーティリティを使用してこのガイドを完了するには、適切な IAM 権限が必要です。アップロードするバケットが、自分で作成していないプロジェクトに存在する場合は、プロジェクト オーナーから必要な権限を持つロールを付与してもらう必要があります。
特定の操作に必要な権限の一覧については、gsutil コマンドの IAM 権限をご覧ください。
関連するロールのリストについては、Cloud Storage のロールをご覧ください。また、特定の制限された権限を持つカスタムロールを作成することもできます。
クライアント ライブラリ
Cloud Storage クライアント ライブラリを使用してこのガイドを完了するには、適切な IAM 権限が必要です。アップロードするバケットが、自分で作成していないプロジェクトに存在する場合は、プロジェクト オーナーから必要な権限を持つロールを付与してもらう必要があります。
特に断りのない限り、クライアント ライブラリのリクエストは JSON API を介して行われ、JSON メソッドの IAM 権限に記載されている権限が必要です。クライアント ライブラリを使用してリクエストを行うときに呼び出される JSON API メソッドを確認するには、元のリクエストをログに記録します。
関連する IAM ロールのリストについては、Cloud Storage のロールをご覧ください。また、特定の制限された権限を持つカスタムロールを作成することもできます。
REST API
JSON API
JSON API を使用してこのガイドを完了するには、適切な IAM 権限が付与されている必要があります。アップロードするバケットが、自分で作成していないプロジェクトに存在する場合は、プロジェクト オーナーから必要な権限を持つロールを付与してもらう必要があります。
特定のアクションに必要な権限の一覧については、JSON メソッドの IAM 権限をご覧ください。
関連するロールのリストについては、Cloud Storage のロールをご覧ください。また、特定の制限された権限を持つカスタムロールを作成することもできます。
バケットにオブジェクトをアップロードする
オブジェクトをバケットにアップロードするには、次の手順を行います。
コンソール
- Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。
バケットのリストで、オブジェクトをアップロードするバケットの名前をクリックします。
バケットの [オブジェクト] タブで次のいずれかを行います。
デスクトップまたはファイル マネージャーから目的のファイルを Google Cloud コンソールのメインペインにドラッグ&ドロップします。
[ファイルをアップロード] ボタンをクリックして、表示されたダイアログでアップロードするファイルを選択し、[開く] をクリックします。
失敗した Cloud Storage オペレーションの詳細なエラー情報を Google Cloud コンソールで確認する方法については、トラブルシューティングをご覧ください。
コマンドライン
gcloud
gcloud storage cp
コマンドを使用します。
gcloud storage cp OBJECT_LOCATION gs://DESTINATION_BUCKET_NAME/
ここで
OBJECT_LOCATION
は、オブジェクトへのローカルパスです。例:Desktop/dog.png
。DESTINATION_BUCKET_NAME
は、オブジェクトをアップロードするバケットの名前です。例:my-bucket
。
成功した場合は、次の例のようなレスポンスになります。
Completed files 1/1 | 164.3kiB/164.3kiB
コマンドフラグを使用すると、オブジェクトの一部として、固定キーとカスタム オブジェクト メタデータを設定できます。
gsutil
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
JSON 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
JSON API マルチパート アップロード(オブジェクトのメタデータを含む単一リクエストのアップロード)
- 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--
ここで
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 無料トライアル