このページでは、ローカル ファイル システムから 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 のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
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--
ここで
BOUNDARY_STRING
は、マルチパート ファイルのさまざまな部分を識別するように定義する文字列です。例:separator_string
。OBJECT_METADATA
は、ファイルに含めるメタデータ(JSON 形式)です。少なくとも、このセクションにはオブジェクトのname
属性({"name": "myObject"}
など)を含める必要があります。OBJECT_CONTENT_TYPE
は、オブジェクトのコンテンツ タイプです。例:text/plain
。OBJECT_DATA
はオブジェクトのデータです。
次に例を示します。
--separator_string Content-Type: application/json; charset=UTF-8 {"name":"my-document.txt"} --separator_string Content-Type: text/plain This is a text file. --separator_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 無料トライアル