я работал над небольшим проектом, основные функциональные возможности этого проекта следующим образом:Get (Serve) файлы из Blobstore в GAE
1-Загрузка файлов с компьютера пользователя (с помощью загрузки файлов в HTML (представления форм))
2-Сжатие этих загружаемых файлов в один ZIP-архив.
3-Сохраните этот Zip-файл в GAE BlobStore.
4-Получить (подавать) этот почтовый ящик от blobstore на ПК (скачайте этот почтовый индекс, чтобы он был доступен локально).
Шаг 1,2 и 3 выполнены правильно, но проблема на шаге 4: я не могу загрузить этот Zip из blobstore; Это код, который я использовал:
from __future__ import with_statement
from google.appengine.api import files
import cgi, cgitb ; cgitb.enable()
import StringIO
import zipfile
from google.appengine.ext import blobstore
from google.appengine.ext import webapp
from google.appengine.ext.webapp import blobstore_handlers
from google.appengine.ext.webapp.util import run_wsgi_app
glob_blob_info=""
class zip():
def z(self):
form = cgi.FieldStorage()
zipstream=StringIO.StringIO()
zfile = zipfile.ZipFile(file=zipstream,mode="w",compression=zipfile.ZIP_DEFLATED)
file_upload = form['file[]']
filename2 = file_upload.filename
data=file_upload.file.read()
zfile.writestr(filename2,data)
zfile.close()
zipstream.seek(0)
zip_file = files.blobstore.create(mime_type='application/zip',_blobinfo_uploaded_filename='test.zip')
with files.open(zip_file, 'a') as f:
f.write(zipstream.getvalue())
files.finalize(zip_file)
blob_key = files.blobstore.get_blob_key(zip_file)
print blob_key
blob_info = blobstore.BlobInfo.get(blob_key)
print blob_info
global glob_blob_info
glob_blob_info=blob_info
class ServeHandler(blobstore_handlers.BlobstoreDownloadHandler):
def get(self):
print "doaa"
global glob_blob_info
glob_blob_info = urllib.unquote(glob_blob_info)
blob_info = blobstore.BlobInfo.get(glob_blob_info)
self.send_blob(glob_blob_info,save_as=True)
def main():
application = webapp.WSGIApplication([('/serve', ServeHandler),], debug=True)
debug=True)
c=zip()
c.z()
run_wsgi_app(application)
if __name__ == "__main__":
main()
Теперь class zip()
выполняется успешно, так что архив архивный файл, содержащий файлы, загруженные пользователем была создана успешно в GAE Blobstore, но проблема точно, что class ServeHandler(blobstore_handlers.BlobstoreDownloadHandler):
Ждут» т выполняется , когда я побежал этот код у меня есть этот выход:
Status: 404 Not Found
Content-Type: text/html;
charset=utf-8 Cache-Control: no-cache
Expires: Fri, 01 Jan 1990 00:00:00 GMT
Content-Length: 0
ли какие-либо идеи по этой проблеме Спасибо заранее?.
Пожалуйста, прекратите публикацию почти одинаковых вопросов. –
Возможный дубликат [Send_blob в GAE] (http://stackoverflow.com/questions/9880865/send-blob-in-gae) –
@Nick Johnson: Извините за это, но проблема все еще существует !!! –