Discourse 缺少对 HTTP Range 标头 的支持,并且在文件下载时始终回复 200 OK 代码,而不是 206 Partial Content。这对论坛用户来说很不方便,因为它会在互联网连接不稳定的情况下强制重新下载整个文件。
主题 Backup too big, is there a way to download it through "resume download" 提到了备份下载时出现此问题,但当未使用 S3 存储时,这也适用于常规文件下载。
我检查了 nginx 代理配置,这不是配置问题。对于 /uploads/short-url/ 请求,Range 标头已正确传递到 localhost:3000,但 Discourse 未处理它。
由于 HTTP Range 是 HTTP 的基本功能之一,因此将其归类为“错误”,而不是“功能”。
附注:在 meta.discourse.org 上无法重现此问题,因为它使用 S3 进行存储。
2 个赞
Falco
(Falco)
2
这在这里处理:
添加对范围的支持是绝对可能的,但这将涉及使用 send_data,并从磁盘读取文件并发送范围:
说实话,有点太混乱了。
1 个赞