私はユーザー(アンドロイドアプリ)から画像を取得し、プログラムによってblobstoreに保存するアプリケーションエンジンエンドポイントAPIを構築しています。次に、データストアにblob_keyを保存します。コードは次のようになります:私はその後app-engineエンドポイント経由のblobstoreイメージapi
(=真に必要な、1)
IMAGE_DATA = messages.BytesField:
まず、私は私の
@endpoint.method
messages.BytesField
などを介して画像を受信しましたfrom google.appengine.api import files def save_image(data): # Create the file file_name = files.blobstore.create(mime_type='image/png') # Open the file and write to it with files.open(file_name, 'a') as f: f.write('data') # Finalize the file. Do this before attempting to read it. files.finalize(file_name) # Get the file's blob key blob_key = files.blobstore.get_blob_key(file_name) return blob_key # which is then saved to datastore
今、私はイメージを提供したいと思いますバック。 @のendpoints.methodで
:
私はこのようなサービス提供の手順を想像最後に
from google.appengine.ext import blobstore from google.appengine.ext.webapp import blobstore_handlers class ServeHandler(blobstore_handlers.BlobstoreDownloadHandler): def get(self, resource): resource = str(urllib.unquote(resource)) blob_info = blobstore.BlobInfo.get(resource) self.send_blob(blob_info)
:私は私のエンドポイントのAPIに次のコードに合わせてどのように表示されていません
GET blob_keyデータストアから
blob_keyの画像を得る
は、フロントエンド(アンドロイドアプリ)私は、ユーザーのプライバシーを保護するため
私のアプローチがあるにStuffResponseMessage
に送信StuffResponseMessageを画像を追加します。どのようにこれを行うにはどのような考え? My code snippets are generally from the google developer tutorial。
EDIT:
私は画像を取得するには、次のメソッドにデータストアからblob_keyを渡す方法を見ていない:
from google.appengine.ext import blobstore
from google.appengine.ext.webapp import blobstore_handlers
class ServeHandler(blobstore_handlers.BlobstoreDownloadHandler):
def get(self, resource):
resource = str(urllib.unquote(resource))
blob_info = blobstore.BlobInfo.get(resource)
self.send_blob(blob_info)
とにかく、内部resource
何ですか?
Python 2.7を使用している場合は、 'from __future__ import with_statement'は必要ありません。 – bossylobster
ああ。ありがとう、@ bossylobster。私はそれを取り出した。 – learner