我有一個網站,我可以在其中提供下載/流媒體文件在另一臺服務器上的鏈接。 目前我如何有它的設置是類似下面的內容:NodeJS:有沒有一種方法可以從另一臺服務器流式傳輸文件而不需要通過我的管道?
download = (req, res) ->
song_id = req.params.id
download_url = "http://mediaserver.com/#{song_id}"
console.log("Returning download from: #{download_url}")
res.set('Content-Type', 'audio/mpeg')
res.set('Content-Disposition', 'attachment; filename="download.mp3"')
request.get(download_url).pipe(res)
#For some reason, express.js on a response end event emits a finish
#http://www.samcday.com.au/blog/2011/06/27/listening-for-end-of-response-with-nodeexpress-js/
res.on "finish",()->
console.log("Completed song download")
不過,我正在尋找一種方法,我可以只返回一個HTTP響應對象,告訴瀏覽器只從相應下載服務器而不是我自己的? (可能仍會更改HTTP標頭以允許將文件保存爲下載)。
這是可能的任何方式?
TY
但我希望該文件來作爲下載或能夠流。我還能用301或302嗎? – Setheron
@Setheron,無論您是服務於該文件還是其他人,該如何處理資源完全取決於瀏覽器。是的,當然你仍然可以流式傳輸。至於它的下載取決於用戶的瀏覽器是否默認打開該資源。不,您將無法在未提供服務的資源上設置「Content-Disposition」標題。 – Brad
到目前爲止,我之所以能夠管理它,是因爲我可以設置內容配置(正如你可以在我的例子中看到的那樣)。問題是我希望有一個下載按鈕的體驗......我想這似乎沒有辦法做到這一點,除非我通過自己管它。 – Setheron