有没有办法使用 Django Response 从远程 URL 流式传输文件(无需在本地下载文件)?
# view.py
def file_recover(request, *args, **kwargs):
file_url = "http://remote-file-storage.com/file/111"
return StreamFileFromURLResponse(file_url)
我们有文件存储(文件可以很大 - 1 GB 或更多)。我们无法共享下载网址(存在安全问题)。文件流可以显着
通过将下载流转发到 Django 响应来提高下载速度。
Django 已经内置了流式Http响应应该为该类提供一个生成字符串作为内容的迭代器。在下面的例子中我正在使用requests
原始响应内容
import requests
from django.http import StreamingHttpResponse
def strem_file(request, *args, **kwargs):
r = requests.get("http://host.com/file.txt", stream=True)
resp = StreamingHttpResponse(streaming_content=r.raw)
# In case you want to force file download in a browser
# resp['Content-Disposition'] = 'attachment; filename="saving-file-name.txt"'
return resp
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)