私は、PaintWeb ( http://code.google.com/p/paintweb /) と呼ばれる HTML5 キャンバス ライブラリを介して描画された画像をユーザーがアップロードできるようにする Java の Appengine アプリケーションに取り組んでいます。
現在、paintweb javascript ライブラリから XMLHttpRequest POST を formencoded イメージとして受け取るサーブレットがあります。
Paintweb.js ライブラリは XMLHttpRequest POST を送信します
send = 'dataURL=' + encodeURIComponent(ev.dataURL), headers = {'Content-Type': 'application/x-www-form-urlencoded'};
カスタム サーブレットは、フォーム エンコードされた画像データを BLOB としてデコードし、関連付けられた Drawing エンティティと共にデータストアに保存します。
カスタム サーブレットは、データストア内の Blob を ContentType("image/png") として提供します 新しい BlobstoreService および ImageService 機能を使用して、HTML5 キャンバス イメージをアップロードし、それらを純粋な Blob として提供できるかどうか知りたいです (このチュートリアルGWTに示されているように) BlobstoreService および ImageService )
ドキュメント ( http://code.google.com/appengine/docs/java/blobstore/overview.html#Uploading_a_Blob ) によると、主な停止点は、フォームを POST する必要があることのようです:
<input type="file" name="myFile">
Paintweb からは不可能だと思います。サーバー側で (データストアではなく) Blobstorage に blob を格納する何らかの方法があれば、CPU クォータを使用して画像を提供しないという利点を享受できる場合、回避策になる可能性があります。
Appengine URL Fetch サービスを使用して、画像ブロブのアップロードをサーバー側からブロブストレージ「createUploadURL()」に転送することは可能ですか、それとも良い考えですか。
http://code.google.com/appengine/docs/java/urlfetch/usingjavanet.html
可能だと思われますが、長期的にリソースを節約できるかどうかはわかりません (画像はアップロード時間よりも何回も表示できる単純な小さな図面なので、保存するメリットがあると思います/ BlobstoreService から提供します。