ユーザーが画像をblobstoreにアップロードできるようにする必要があるGoogleAppEngineアプリケーション(Python)があります。クライアントは、Webアプリではなく、ネイティブモバイルアプリになります。アップロードを行うための次のコードがあります。
class ImageGetUploadURLHandler(webapp2.RequestHandler):
def get(self):
self.response.headers['Content-Type'] = 'text/plain'
self.response.out.write(blobstore.create_upload_url('/imgupload'))
class ImageUploadHandler(blobstore_handlers.BlobstoreUploadHandler):
def post(self):
imgInfo = self.get_uploads('img')[0]
logging.info('Uploading image %s of size %i'.format(imgInfo.filename, imgInfo.size))
self.redirect('/echo?val=%s' % str(imgInfo.key()))
ここで、ImageUploadHandler
はにマウントされ/imgupload
、text/plainとして/echo
渡されたものをすべてエコーバックする単純なハンドラーです。val
今のところ、モバイルアプリをまだ起動していないため、RESTテストツールを使用しています。ImageGetUploadHandlerに対してGETを実行し、結果のリンクをテストアプリケーションにコピーしました。そこでは、アップロードURLの正しいキーの下にある画像ファイルを含むmultipart/form-dataでPOSTを使用しました。これを行うと、次のエラーが発生します。
ValueError: Invalid boundary in multipart form: ''
何が悪いのかわかりません。どんな助けでも大歓迎です。