我通過第三方API加載視頻。
它返回正文中的二進制數,並帶有Transfer-Encoding :chunked
標題。如何將瀏覽器的流氓響應流式傳輸到瀏覽器?
我使用Guzzle 4
來消費api,我怎樣才能輕鬆地將它傳輸到瀏覽器,所以我不需要首先將整個東西加載到內存中?
我不想將它設置爲attachment
,因爲我希望它在瀏覽器中播放而不是下載。
<?php
$client = new GuzzleHttp\Client();
// Download the video and stream it to the client
$response = $client->get($url)->send();
//But this will have to cache the whole thing in PHP memory first...
header("Content-Type:{$response->getHeader('Content-Type')}");
echo $response->getBody();
除了Guzzle,你知道還有什麼是HTTP客戶端嗎?用戶的瀏覽器。爲什麼不讓它直接消費視頻? – Chris
由於內容位於我們的應用程序(而非用戶)身份驗證的私有API的後面。我基本上需要通過瀏覽器代理視頻請求,通過我們的應用程序執行auth和其他一些事情,然後將視頻返回給消費客戶端。如果第三方API提供了像S3這樣的預先認證的URL,那麼我可以將任何請求重定向到該網址,但我擁有的就是這個流,而我無法看到一種簡單的代理方式... –