使用Pyramid提供文件

8 投票
3 回答
4922 浏览
提问于 2025-04-17 06:41

我在用我写的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

我在这个问题上研究了一段时间,发现

http://docs.webob.org/en/latest/file-example.html

对我帮助很大。

8

Pyramid 1.3 版本新增了两种响应类,分别是 FileResponseFileIter,这两个类可以用来手动提供文件服务。

8

在Python这边的网络服务器需要支持部分下载,这个功能是通过一个叫做 HTTP Accept-Ranges头部 来实现的。这个博客文章深入探讨了这个问题,并提供了一个Python的例子:

撰写回答