【发布时间】:2010-12-05 01:09:15
【问题描述】:
我正在使用 Python/Twisted 开发一个 Web 应用程序。
我希望用户能够下载一个非常大的文件 (> 100 Mb)。当然,我不想将所有文件加载到(服务器的)内存中。
服务器端我有这个想法:
...
request.setHeader('Content-Type', 'text/plain')
fp = open(fileName, 'rb')
try:
r = None
while r != '':
r = fp.read(1024)
request.write(r)
finally:
fp.close()
request.finish()
我希望这会起作用,但我遇到了问题: 我正在使用 FF 进行测试...似乎浏览器让我等到文件下载完成,然后我有打开/保存对话框。
我希望立即出现对话框,然后是进度条...
也许我必须在 Http 标头中添加一些内容...类似于文件大小的内容?
【问题讨论】:
-
通过读取和发送更大的块,您可能会获得更好的吞吐量和更少的服务器负载...尝试使用 4-16k 左右的值来找到最适合您的情况的值。
-
您愿意接受其中一个答案吗?
标签: python http download twisted