0

我想通过 HTTPS 提供大文件(>1GB)。我正在尝试为此使用范围标头,以便当客户端(浏览器)请求字节范围时,它将由服务器提供服务。我还对范围设置了最大限制,即 1MB。

问题是浏览器(在 Chrome、Firefox 上测试)不启动范围请求。代码看起来像这样:

@app.get("/download/<file_id>")
def download(file_id):
  ...
  # some logic
  ...
  return file_download_in_ranges(file_location, download=True)

该函数file_download_in_ranges检查标题是否有Content-Rangeheader ,如果有,则返回指定范围内的文件中的数据块。我尝试对 HTML5 视频播放器使用相同的 API,效果很好。但是,当我使用相同的 API 创建锚链接时,浏览器不会启动 Range 请求周期。范围请求是否仅适用于浏览器内置的音频/视频播放器?

提前感谢您的建议!

4

0 回答 0