我創建的zip文件到GAE Blob存儲區,然後我嘗試使用此代碼來獲取(下載)該zip文件:Send_blob在GAE
def send_blob(blob_key_or_info, content_type=None, save_as=None):
CONTENT_DISPOSITION_FORMAT = "attachment; filename=\"%s\""
if isinstance(blob_key_or_info, blobstore.BlobInfo):
blob_key = blob_key_or_info.key()
blob_info = blob_key_or_info
else:
blob_key = blob_key_or_info
blob_info = None
if blob_info:
content_type = content_type or mime_type(blob_info.filename)
save_as = save_as or blob_info.filename
#print save_as
logging.debug(blob_info)
response = Response()
response.headers[blobstore.BLOB_KEY_HEADER] = str(blob_key)
if content_type:
if isinstance(content_type, unicode):
content_type = content_type.encode("utf-8")
response.headers["Content-Type"] = content_type
else:
del response.headers["Content-Type"]
def send_attachment(filename):
if isinstance(filename, unicode):
filename = filename.encode("utf-8")
response.headers["Content-Disposition"] = (\
CONTENT_DISPOSITION_FORMAT % filename)
if save_as:
if isinstance(save_as, basestring):
send_attachment(save_as)
elif blob_info and save_as is True:
send_attachment(blob_info.filename)
else:
if not blob_info:
raise ValueError("Expected BlobInfo value for blob_key_or_info.")
else:
raise ValueError("Unexpected value for save_as")
return response
,如果我調用這個函數的主要和打印返回從這個功能(響應)的返回值i得到例如: 200 OK 的Content-Length:0 X-AppEngine上-的BlobKey:C25nn_O04JT0r8kwHeabDw == 內容類型:應用程序/壓縮 內容處置:附件;文件名=「test.zip」 但問題我現在如何使用此響應來獲取文件到我的電腦(下載它)? 在此先感謝。
:當我把在單獨的頁面該類處理器再通過鑰匙。 ,問題是:Status:404 Not Found Content-Type:text/html; charset = utf-8 Cache-Control:no-cache 到期時間:1990年1月1日星期五00:00:00 GMT Content-Length:0,處理程序沒有執行。對這個問題有什麼想法? – 2012-03-27 10:06:28
你在日誌中看到'blobstore.get(...)失敗'錯誤嗎?如果是這樣,您可能傳遞了錯誤的密鑰或無法對密鑰進行正確的URL編碼。如果沒有,你可能沒有在app.yaml中正確添加處理程序。 – 2012-04-09 06:18:34