使用Pyramid提供文件
我在用我写的Pyramid应用程序提供一些比较大的文件下载。
我遇到的唯一问题是下载管理器不太好用。
我无法让像DownThemAll这样的下载管理器支持断点续传或分段下载。
size = os.path.getsize(Path + dFile)
response = Response(content_type='application/force-download', content_disposition='attachment; filename=' + dFile)
response.app_iter = open(Path + dFile, 'rb')
response.content_length = size
我觉得问题可能出在paste.httpserver
上,但我不太确定。
3 个回答
2
8
Pyramid 1.3 版本新增了两种响应类,分别是 FileResponse 和 FileIter,这两个类可以用来手动提供文件服务。
8
在Python这边的网络服务器需要支持部分下载,这个功能是通过一个叫做 HTTP Accept-Ranges头部 来实现的。这个博客文章深入探讨了这个问题,并提供了一个Python的例子: