2016-05-14 17 views
2

私は、BlobstoreをGoogle Cloud Storageに切り替えることを検討しています(GoogleがBlobstoreを "superseded"と呼んでいるので)。Google Cloud Storage for GAEアプリにファイルを直接アップロードする

Blobstoreでは、マルチパートフォームはBlobstoreに直接提出(アップロード)され、Blobstoreは要求を書き換えてBlobKeyを処理するGAEアプリにリダイレクトします。これは、GAEアプリケーションの負荷が非常に小さいことを意味していました。

Google Cloud Storage(GCS)で同様のワークフローを実装する方法はありますか?

Reading and Writing to Google Cloud Storageの例では、アップロードを処理し、データを読み取り、GCSに保存するGAEコードが含まれています。

同様に(たとえば)アップロードされた画像ファイルを処理する場合:GCSから読み込んで画像データを返すには、GAEコードにハンドラを実装する必要があるようです。

GCS(AFAIK AWS S3はこれをサポートしています)でリソースのURLを生成する方法はありませんか?

答えて

2

blobstore APIは引き続き使用できますが、実際のストレージはGCSに保存されています。アップロードの動作は同じで、アプリの変更はほとんどないと考えられます。

Using the Blobstore API with Google Cloud Storage (Python)から

:あなたが代わりに ブロブストアに格納するクラウドストレージでブロブを保存するためにブロブストアAPIを使用することができます

。あなたはGoogle Cloud Storageマニュアルに記載 としてバケツを設定し、blobstore.blobstore.create_upload_url gs_bucket_nameパラメータにバケツ とファイル名を指定する必要があります。アップロードハンドラでは、返されたFileInfoメタデータを処理し、あとでBLOBを取得するために必要なGoogle Cloud Storageのファイル名 を明示的に保存する必要があります。

完全なサンプルアプリケーションもここに表示されています。

更新:おっと、上記の答えはPython環境に適用され、Javaのいずれかが、次のとおりです。Using the Blobstore API with Google Cloud Storage (Java)から

を:

あなたが代わりにクラウドストレージにブロブを格納するブロブストアAPIを使用することができます をBlobstoreに格納します。あなたはGoogle Cloud Storageマニュアルに記載 としてバケツを設定し、BlobstoreServicecreateUploadUrlバケット とファイル名を指定して、UploadOptionsパラメータで バケット名を指定する必要があります。アップロードする ハンドラでは、返されたFileInfoメタデータを処理する必要があり、 は、あとでBLOBを に取得するのに必要なGoogle Cloud Storageのファイル名を明示的に保存します。

Java用の完全なサンプルアプリケーションはありません。

+0

ありがとうございました。私はそのリンクを見つけられませんでした。 – markvgti

1

Google Cloud Storageは、アップロードまたは読み取り用のURLの生成をサポートしています。 詳細については、https://cloud.google.com/storage/docs/access-control/create-signed-urls-program

このようなsigned URLの作成には、gcloud-java-storageライブラリが役立ちます。

+0

私はこれを読んだが、現在の状況から大きく変わった。ほとんどのプロジェクトと同様に、私は実際には時間をかけて押されている。 - 最終的には[ポリシー文書](https:// cloud.google.com/storage/docs/xml-api/post-object#policydocument):多くの機能を提供するようです。 – markvgti

関連する問題