<form>
Google App Engine でホストされている python webapp サーバーに、html を使用してバイナリ jpeg ファイルをアップロードしています。サーバー メソッドは画像全体を受け取りますが (ファイル サイズ/タイプなどの統計情報を正常に印刷しようとしました)、Google クラウド ストレージ バケットへの書き込みに失敗します。最終的に GCS バケットにあるのは、わずか 48 バイトの破損したファイルです。
def handleUpload(self):
client = self._get_storage_client()
bucket = client.get_bucket(config.CLOUD_STORAGE_BUCKET)
results = []
for name, fieldStorage in self.request.POST.items():
if type(fieldStorage) is unicode:
continue
result = {}
fileName = urllib.unquote(fieldStorage.filename)
blob = bucket.blob(fileName)
blob.upload_from_string(
str(fieldStorage.file),fieldStorage.type)
url = blob.public_url
if isinstance(url, six.binary_type):
url = url.decode('utf-8')
results.append(result)
return results