請原諒我,如果我錯誤地使用了這些術語,我對流式處理的概念相當陌生,而且我沒有在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
您可以檢查正在生成的圖像鏈接是否是靜態的。 –