【发布时间】:2012-04-10 11:20:19
【问题描述】:
我在 GAE 的 blobstore 中创建了 zip 文件,然后我尝试使用以下代码获取(下载)这个 zip 文件:
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
如果我在 main 中调用这个函数并从这个函数(响应)打印返回值,我会得到例如: 200 好 内容长度:0 X-AppEngine-BlobKey:C25nn_O04JT0r8kwHeabDw== 内容类型:应用程序/zip 内容处置:附件;文件名="test.zip" 但是问题是我现在如何使用此响应将文件获取到我的 PC(下载)? 提前致谢。
【问题讨论】:
标签: python google-app-engine blobstore