zipfile AppEngine'de mevcuttur Python zip kütüphanesi herhangi bir "desteklenmeyen standart kütüphane modüllerini" gerektiriyorsa potansiyel bilmiyorum çünkü demek ve yeniden bir çalışma example aşağıdaki gibidir:
from contextlib import closing
from zipfile import ZipFile, ZIP_DEFLATED
from google.appengine.ext import webapp
from google.appengine.api import urlfetch
def addResource(zfile, url, fname):
# get the contents
contents = urlfetch.fetch(url).content
# write the contents to the zip file
zfile.writestr(fname, contents)
class OutZipfile(webapp.RequestHandler):
def get(self):
# Set up headers for browser to correctly recognize ZIP file
self.response.headers['Content-Type'] ='application/zip'
self.response.headers['Content-Disposition'] = \
'attachment; filename="outfile.zip"'
# compress files and emit them directly to HTTP response stream
with closing(ZipFile(self.response.out, "w", ZIP_DEFLATED)) as outfile:
# repeat this for every URL that should be added to the zipfile
addResource(outfile,
'https://www.google.com/intl/en/policies/privacy/',
'privacy.html')
addResource(outfile,
'https://www.google.com/intl/en/policies/terms/',
'terms.html')
Keep App Engine'deki yanıt boyutu sınırının 10MB olduğu düşünülürse, bundan daha büyük bir zip dosyası döndüremezsiniz. Belki de yeni Dosyalar API'sini (SDK 1.4.3) kullanarak zip dosyasını oluşturabilir, blobstore'da saklayabilir, ardından blob –
Bu cevap 'buf = zipf.read (2048)' aşamasında başarısız oluyor; 'zipf' için erence; – Justin
@Justin'in altındaki cevabı kullan: Güncellenen örnek kod daha iyi çalışıyor olmalı. – myroslav