【发布时间】:2013-01-25 04:22:29
【问题描述】:
就我而言,我有一个数据库,其中包含显示在概览页面上的文档缩略图。每次浏览器访问该站点时,都会再次下载所有缩略图,因此下载功能会再次加载数据库中的所有图像。由于我在 GAE 上运行,这会增加我的数据库读取量。
我尝试通过设置启用客户端站点缓存:
@auth.requires_login()
def download():
response.headers['Cache-Control'] = None
response.headers['Pragma'] = None
response.headers['Expires'] = None
return response.download(request, db)
我还读到 response.stream 可能会有所帮助,但 web2py 书说:
如上所述,response.download 应该用于检索通过上传字段存储的文件。 response.stream 可以用于其他情况,比如返回一个临时文件或者控制器创建的StringIO对象。
-- 编辑--
我启用了客户端缓存:
session.forget() #important
expire_time = datetime.timedelta(days=2)
response.headers['Cache-Control'] = 'private, max-age%d'%(60*60*24*2)
response.headers['Pragma'] = None
response.headers['Expires'] = (request.utcnow + expire_time).strftime("%a, %d %b %Y %H:%M:%S GMT")
response.headers['Content-Disposition'] = \
'attachment;filename=' + filename + ';'
return response.stream(stream, filename=filename)
【问题讨论】:
标签: python google-app-engine web2py