[英]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.