7
Zipファイルを生成してApp EngineのBlobstoreに保存しようとしています。今、私はBlobstoreから有効なzipファイルを取得しません。問題がジッパー、保管、検索またはダウンロードであるかどうかはわかりません。GAE BlobStoreにZipファイルを生成して保存する
以下の質問のスニペットに基づいてコードを作成しました。ブロブストアに格納した後
-
は、私は、ユーザーがフラスコのアプリケーションを介して、それをダウンロードしてみましょう。
ここに私がしようとしていることの要点があります。
def zipit():
zipstream = StringIO.StringIO()
zfile = zipfile.ZipFile(file=zipstream, mode='w')
bytes = "lorem ipsum dolor sit amet"
zfile.writestr('loremipsum', bytes, compress_type=zipfile.ZIP_STORED)
zfile.close()
zipstream.seek(0)
return zipstream.getvalue()
zip_file = files.blobstore.create(mime_type='application/zip')
zip_data = zipit()
with files.open(zip_file, 'a') as f:
f.write(zip_data)
files.finalize(zip_file)
blob_key = files.blobstore.get_blob_key(zip_file)
blob_data = blobstore.BlobReader(blob_key).read()
# http://flask.pocoo.org/docs/api/
response = make_response(blob_data)
response.headers['Content-Type'] = 'application/zip'
response.headers['Content-Disposition'] = 'attachment; filename="loremipsum.zip"'
return response
何か助けていただければ幸いです。
ありがとうございました!あなたのコードは動作します。おそらく、検索中に破損している可能性があります。このプログラムはFlaskで構築されています。それが理由です。なぜファイルを読み込んで提供するのですか? send_blobを試しましたが、ヘッダーが必要です。 Flaskフレームワークを介して直接BLOBファイルを処理するための回避策を見つける必要があります。 –
これは、誰がURLを処理するのが問題なようです。 blobstoreの画像にはget_serving_urlがあります。私はFlaskを通して、ブロブストアからファイルを提供する方法をまだ見つけていません。 –
別の手順。 '応答= make_response()' ' response.headers [ 'X-AppEngineの-blobKeyに'] = blob_key' 'response.headers [ 'のContent-Type'] =「アプリケーション/ zip'' ' response.headers ['Content-Disposition'] = '添付ファイル。ファイル名= "loremipsum.zip" '' '返信応答' これで元の問題は解決しません。 –