Cloud Storage は、ファイル(動画、画像、その他の静的コンテンツなど)を保存または提供する目的で使用できます。
このドキュメントでは、アプリで Cloud Storage の Cloud クライアント ライブラリを使用して、Cloud Storage にデータを保存したり、Cloud Storage からデータを取得する方法を説明します。
始める前に
- 開発環境の設定の手順で、環境とプロジェクトを設定し、App Engine でのアプリの構造を理解してください。このドキュメントで説明しているサンプルアプリを実行する際に必要となるため、プロジェクト ID を書き留めておきます。
次のコマンドを呼び出して、アプリケーション用の Cloud Storage バケットを作成します。
gcloud storage buckets create gs://YOUR_BUCKET_NAME
バケットを一般公開(読み取り可能)にして、ファイルを提供できるようにします。
gcloud storage buckets add-iam-policy-binding gs://<var>YOUR_BUCKET_NAME</var> --member=allUsers --role=roles/storage.objectViewer
サンプルのダウンロード
Go
リポジトリのクローンを作成するには、次のコマンドを実行します。
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
cd golang-samples/appengine_flexible/storage
Java
リポジトリのクローンを作成するには、次のコマンドを実行します。
git clone https://github.com/GoogleCloudPlatform/java-docs-samples
cd java-docs-samples/flexible/java-17/cloudstorage
Node.js
リポジトリのクローンを作成するには、次のコマンドを実行します。
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples/
cd nodejs-docs-samples/appengine/storage/flexible
PHP
リポジトリのクローンを作成するには、次のコマンドを実行します。
git clone https://github.com/GoogleCloudPlatform/php-docs-samples
cd php-docs-samples/appengine/flexible/storage
Python
リポジトリのクローンを作成するには、次のコマンドを実行します。
git clone https://github.com/GoogleCloudPlatform/python-docs-samples
cd python-docs-samples/appengine/flexible/storage
Ruby
リポジトリのクローンを作成するには、次のコマンドを実行します。
git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples
cd ruby-docs-samples/appengine/flexible/storage/
.NET
サンプルアプリをダウンロードして抽出します。
コマンドラインを使用する場合は、次のアプリ ディレクトリに移動します。
dotnet-docs-samples\appengine\flexible\CloudStorage\CloudStorage.Sample
アプリケーションをローカルで実行するには、サービス アカウントを設定して、認証情報をダウンロードします。
Google Cloud コンソールで認証情報のリストを開きます。
[認証情報を作成] をクリックします。
[サービス アカウント キー] を選択します。
[サービス アカウント キーの作成] ウィンドウが開きます。
サービス アカウントのリストをクリックし、[Compute Engine のデフォルトのサービス アカウント] を選択します。
JSON のキーのタイプを選択します。
[作成] をクリックします。
新しい秘密鍵ウィンドウが表示され、秘密鍵が自動的にダウンロードされます。
[閉じる] をクリックします。
プロジェクト構成の編集と依存関係のインストール
Go
app.yaml
で GCLOUD_STORAGE_BUCKET
を設定します。この値は、以前に作成した Cloud Storage バケットの名前です。
Java
app.yaml
で、以前にプロジェクトで作成した Cloud Storage を BUCKET_NAME
に設定します。
pom.xml
で、com.google.cloud
を依存関係として設定し、その依存関係のアーティ ファクト ID として google-cloud-storage
を指定します。これにより、Cloud Storage を使用するための機能が提供されます。
Node.js
app.yaml
で、GOOGLE_CLOUD_PROJECT
環境値にプロジェクト ID を追加します。GCLOUD_STORAGE_BUCKET
環境値には作成済みの Cloud Storage バケットの名前を設定します。
package.json
内に、依存関係として @google-cloud/storage
を追加します。これで Cloud Storage を利用するための機能が提供されます。
ローカルでの実行とテストの手順については、README.md
ファイルをご覧ください。
PHP
app.yaml
で CLOUD_STORAGE_BUCKET
を設定します。この値は、以前に作成した Cloud Storage バケットの名前です。
composer.json
では、Cloud クライアント ライブラリを追加する必要があります。これにより、Cloud Storage の関数が提供されるためです。
Python
app.yaml
で GOOGLE_STORAGE_BUCKET
を設定します。この値は、以前に作成した Cloud Storage バケットの名前です。
requirements.txt
に google-cloud-storage
ライブラリを追加して Cloud Storage の機能を提供する必要があります。
Ruby
app.yaml
で、以前にプロジェクトで作成した Cloud Storage を GCLOUD_STORAGE_BUCKET
に設定します。
Cloud Storage の機能を使用するには、Gemfile
に gcloud
ライブラリを追加する必要があります。
.NET
app.yaml
ファイルで、以前にプロジェクトで作成した Cloud Storage を TEST_GOOGLE_BUCKET_NAME
に設定します。
env_variables:
TEST_GOOGLE_BUCKET_NAME: [your-bucket-name]
アプリケーション コード
Go
このサンプル アプリケーションはウェブページを表示し、Cloud Storage に保存するファイルを指定するようユーザーに促します。ユーザーがファイルを選択して [送信] をクリックすると、アップロード ハンドラが Cloud Storage の NewWriter 関数を使用して、ファイルを Cloud Storage バケットに書き込みます。
このファイルを Cloud Storage から取得するには、バケット名とファイル名を指定する必要があるので注意してください。将来の使用に備えて、これらの値をアプリに保存する必要があります。
Java
このサンプル アプリケーションはウェブページを表示し、Cloud Storage に保存するファイルを指定するようユーザーに促します。ユーザーがファイルを選択して [送信] をクリックすると、doPost
リクエスト ハンドラが Storage.create を使用してファイルを Cloud Storage バケットに書き込みます。
このファイルを Cloud Storage から取得するには、バケット名とファイル名を指定する必要があるので注意してください。将来の使用に備えて、これらの値をアプリに保存する必要があります。
Node.js
このサンプル アプリケーションはウェブページを表示し、Cloud Storage に保存するファイルを指定するようユーザーに促します。ユーザーがファイルを選択して [送信] をクリックすると、アップロード ハンドラがファイルの内容を blob に読み込み、Cloud Storage に書き込みます。
ファイルが Cloud Storage にアップロードされると、このファイルの公開 URL が返されます。この URL を使用して、Cloud Storage から直接ファイルを配信できます。今後も使用できるように、この値をアプリで保存してください。
PHP
このサンプル アプリケーションはウェブページを表示し、Cloud Storage に保存するファイルを指定するようユーザーに促します。ユーザーがファイルを選択して [送信] をクリックすると、アップロード ハンドラがファイルの内容を blob に読み込み、Cloud Storage に書き込みます。
ファイルが Cloud Storage にアップロードされると、このファイルの公開 URL が返されます。この URL を使用して、Cloud Storage から直接ファイルを配信できます。今後も使用できるように、この値をアプリで保存してください。
Python
このサンプル アプリケーションはウェブページを表示し、Cloud Storage に保存するファイルを指定するようユーザーに促します。ユーザーがファイルを選択して [送信] をクリックすると、アップロード ハンドラがファイルの内容を Cloud Storage blob に読み込んで、Cloud Storage バケットに書き込みます。
ファイルが Cloud Storage にアップロードされると、このファイルの公開 URL が返されます。この URL を使用して、Cloud Storage から直接ファイルを配信できます。今後も使用できるように、この値をアプリで保存してください。
Ruby
このサンプル アプリケーションはウェブページを表示し、Cloud Storage に保存するファイルを指定するようユーザーに促します。ユーザーがファイルを選択して [送信] をクリックすると、アップロード ハンドラがファイルの内容を blob に読み込み、Cloud Storage に書き込みます。
ファイルが Cloud Storage にアップロードされると、このファイルの公開 URL が返されます。この URL を使用して、Cloud Storage から直接ファイルを配信できます。今後も使用できるように、この値をアプリで保存してください。
.NET
このサンプル アプリケーションはウェブページを表示し、Cloud Storage に保存するファイルを指定するようユーザーに促します。ユーザーがファイルを選択して [送信] をクリックすると、アップロード ハンドラがファイルの内容を blob に読み込み、Cloud Storage に書き込みます。
ファイルが Cloud Storage にアップロードされると、このファイルの公開 URL が返されます。この URL を使用して、Cloud Storage から直接ファイルを配信できます。今後も使用できるように、この値をアプリで保存してください。
詳細情報
Cloud Storage の詳細については、Cloud Storage のドキュメントをご覧ください。