簡體   English   中英

從Google AppEngine中的blobstore下載zip存檔

[英]Download zip archive from blobstore in Google AppEngine

我使用python開發了Google應用引擎。 我將zip歸檔文件創建到tho blobstore中,但是嘗試下載此文件時出現問題。

我將顯示一些詳細信息:首先,我在Blob上創建了此存檔,然后獲得了此上傳文件的密鑰。 我想將此網址中的密鑰發送到另一個python頁面,如下所示:

print'<a href="download.py?key=%s">Save Zip</a>' % blob_key

現在,在download.py頁面中,我嘗試從URL中獲取密鑰為:self.request.get('key'),但是它不起作用。

在此頁面中,我寫道

class ServeHandler(blobstore_handlers.BlobstoreDownloadHandler):

......等等

這是我用來下載zip的唯一類,但是問題是我無法獲取密鑰,並且在運行應用程序時遇到了以下問題:

****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****

app.yaml代碼:

application: cloudcomputingproject20122012
version: 1
runtime: python
api_version: 1

handlers:
- url: /compress.py
  script: compress.py
- url: /decompress.py
  script: decompress.py
- url: (.*)/
  static_files: static\1/index.html
  upload: static/index.html

現在在compress.py中,我做了兩個類;創建zip,將其存儲在blobstore上,獲取此存儲文件的bob鍵,然后將blob鍵定義為全局變量,現在在服務處理程序類中,我嘗試下載此zip,但是我可以沒錯

class ServeHandler(blobstore_handlers.BlobstoreDownloadHandler):
  def get(self):

    global x 
    #x="tvsD0KgYxX85hyC9wJHsqw=="
    print x
    x = str(urllib.unquote(x))
    blob_info = blobstore.BlobInfo.get(x)
    self.send_blob(blob_info,save_as=True)



def main():
    application = webapp.WSGIApplication( [('/serve', ServeHandler),], debug=True)
    c=zip()
    c.z()
    run_wsgi_app(application)

if __name__ == "__main__":
    main()

App Engine上的Python與PHP不一樣-請求網址不會直接映射到文件名; 您不能指向/download.php並期望將請求路由到您的處理程序。 您需要將處理程序映射到一個URL,然后將請求指向該URL。 有關示例,請參見任何入門教程。

您是否看過這里的示例? 看來您在做完全相同的事情。

class ServeHandler(blobstore_handlers.BlobstoreDownloadHandler):
  def get(self, resource):
    resource = str(urllib.unquote(resource))
    blob_info = blobstore.BlobInfo.get(resource)
    self.send_blob(blob_info)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM