请原谅我,如果我错误地使用了这些术语,我对流式处理的概念相当陌生,而且我没有在Google上找到很多关于最佳用例的资源流。如何使用Django将图像传输到浏览器
我现在所拥有的:
浏览器向图像的请求到Django的端点
var img = new Image();
img.src = 'http://www.example.com/api/images/51234/
img.onload = function() {
$('#my-img').attr('src', this.src);
}
Django的转身让另一个请求到服务的图像
import requests
def get_image(request, img_id):
response = requests.get("http://api.myexample.net/album/123/img/{0}".format(img_id))
return HttpResponse(res.content, mimetype="image/jpeg")
我对这个过程的理解是,Django会在转向将响应传递给浏览器之前,将此映像的所有二进制信息读入内存。有没有一种方法可以将它直接传输到浏览器,而不是等待图像完全交付给Python?
我已阅读StreamingHTTPResponse类的文档,但所有示例都显示仅从服务器磁盘读取文件并将其传递到StreamingHTTPResponse,而不是从其他服务获取文件。
不幸的是我觉得我确实需要做requests.get - 我没有包括的是我调用的服务是一个经过身份验证的端点,需要在请求之前使用请求对令牌进行身份验证,然后才会返回映像。 – diplosaurus
您可以检查正在生成的图像链接是否是静态的。 –