Создание Zip-файлов и сохранение в GAE BlobStore

Я пытаюсь создать архивный файл и сохранить его в Blobstore App Engine. В настоящий момент у меня нет действующего zip-файла в Blobstore. Не уверен, что проблема в архивировании, хранении, извлечении или загрузке.

Я создал код на основе фрагментов из следующих вопросов.

После сохранения в Blobstore я разрешил пользователям загружать его через приложение Flask.

Вот суть того, что я пытаюсь сделать.

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

Любая помощь приветствуется.

7
задан Community 23 May 2017 в 09:59
поделиться