ドキュメントを翻訳しています。
翻訳元はこちらです。
このドキュメントは、Google App Engineアプリケーションから
Google Cloud Storageの機能を呼び出す方法について
説明しています。
現在は試験的運用中なので、今後変更があるかもしれません。
第1回はこちら、第2回はこちらです。
Prerequisites - 前提条件
Google Cloud Storage APIを利用するには、以下の前提条件を満たさなければなりません:- Google Cloud Storage API for Javaは、App Engihe SDKs 1.6.0以降で使用できます。また、このページに記述されているサンプルのいくつかは、Google Plugin For Eclipseが必要です。Google Plugin for EclipseとApp Enging SDKのアップデート・ダウンロードについては、Google Plugin for Eclipseのダウンロードページを参照してください。
- Cloud Storageのアクティブ化。Google APIsコンソールで、Cloud Storageサービスのアクティブ化を行ってください。
- 課金のセットアップ。Google Cloud Storageは、課金情報の提供が必要です。指定の状況では、無料の試用クォータが提供されています。
- バケットの生成。Cloud Storageでは、データを保持する基本的なコンテナであるバケットが存在します。バケットは、Google Cloud Storageにアップロードしたデータの各部分を、オブジェクトという形で全てのデータを保持します。Google Cloud Storage APIを使用できるようになるには、データを保存するためのバケットを生成する必要があります。そのための最も簡単な方法は、qsutilツールまたはGoogle APIsコンソールを通してアクセスできるオンラインGoogle Storageブラウザを利用することです。
- バケットまたはオブジェクトに認証を与える。バケットに新しいオブジェクトを生成できるようにするためには、以下を行うことが必要です:
- App Engine Adminコンソールにログイン
- Cloud Storageのバケットを認証するアプリケーションをクリック
- 左側にあるAdministrationセクションの下のApplication Settingsをクリック
- Service Account Nameの下の値をコピーします。これは、アプリケーションのサービスアカウント名で、application-id@appspot.gserviceaccount.comの形式です。App Engineプレミアアカウントを使用している場合、アプリケーションのアカウント名は、application-id.example.com@appspot.gserviceaccount.comの形式となります。
- 以下のメソッドの内の一つを用いて、アクセス権を与えます:
- バケットにアプリケーションのアクセスを認める最も簡単な方法は、Google APIsコンソールを使ってバケットを含むプロジェクトにチームメンバーとしてアプリケーションのサービスアカウント名を加えることです。(アプリケーションはバケットに書き込みを行う必要がある場合、editパーミッションを持つことが必要です) Cloud Storage内のパーミッションについての情報は、Scopes and Permissionsを参照してください。必要ならば、プロジェクトに他のアプリケーションも加えてください。
- アプリケーションにバケットへのアクセス権を与える他の手段として、qsutilユーティリティを使って、バケットのACLや既定のオブジェクトのACLの設定を手動で編集する方法があります:
- バケットのACLを取得して、編集用にファイルに保存します。
gsutil getacl gs://mybacket > myAcl.txt
- 取得したACLのファイルに以下の内容を加えます。
<entry> <scope type="UserByEmail"> <emailaddress> your-application-id@appspot.gserviceaccount.com </emailaddress> </scope> <permission> WRITE </permission> </entry>
- ACLに複数のアプリケーションを加えたい場合は、それぞれのアプリケーションについて上記の内容を繰り返し、それぞれのアプリケーションのサービス名を反映したemailアドレスのみを変更します。
- 変更したACLをバケットにセットします。
gsutil setacl myAcl.txt gs://mybucket
- 複数のアプリケーション、またはDatastore Adminbackup and restore機能にバケットへのアクセス権を与えている場合、バケットにデフォルトのオブジェクトACLをセットする必要があります。
- バケットへのデフォルトのオブジェクトACLを取得して、編集用のファイルに保存します。
gsutil getdefacl gs://mybucket > myDefAcl.txt
- 上記のバケットのACLと同じ内容を追加して、必要ならばWRITEをFULL_CONTROLまたはREADに変更します。
- 変更したデフォルトのオブジェクトACLをバケットにセットします。
gsutil setdefacl myDefAcl.txt gs://mybucket
- バケットへのデフォルトのオブジェクトACLを取得して、編集用のファイルに保存します。
- バケットのACLを取得して、編集用にファイルに保存します。
- 認証されていないアプリケーションが特定のオブジェクトの読み取りを行うことを防ぐ必要がある場合は、以下のことを行えます:
- オブジェクト上の定義済みのproject-privateACLを手動でセットする
- バケット内にdefault project-private object ACL付きでオブジェクトを保存する
- その後、Google APIsコンソールでサービスアカウントをproject viewerとして追加し、オブジェクトにREAD-ONLYアクセスをApp Engineアプリケーションに与えます。定義済みのpublic-readACLをセットして、認証されている・されていないに関わらずに全てのユーザーにオブジェクトへのアクセスを許可することもできます。project viewerのアプリケーションのサービスアカウント名を追加する必要はありませんが、パブリックなアクセスを望まないデータがある場合は、オブジェクトにpublic-readのACLを設定しないで下さい。Note:バケットにREADパーミッションのみをセットすると、バケット内のどのオブジェクトにもREADパーミッションは提供されません。オブジェクトに対して個別にREADパーミッションをセットするか、バケット内にオブジェクトを生成する前にdefault ACLをセットしなければなりません。
インストール不要・無料のKaede翻訳ツール:
http://kaedetrans-hrd.appspot.com/
0 件のコメント:
コメントを投稿