1

別のサーバーでメディア ファイルをダウンロード/ストリーミングするためのリンクを提供するサイトがあります。現在、私がどのようにセットアップしているかは、次のようなものです。

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 ヘッダーを変更している可能性があります)。

これはどのように可能ですか?

タイ

4

2 に答える 2

2

301 (永続的) または 302 (一時的) リダイレクトをロケーション ヘッダーと共に使用するだけです。

response.writeHead(302, {
  'Location': 'http://someUrlHere'
});

私は Express ユーザーではありませんが、Express でステータス コードを で設定できるようですres.send(302)

于 2012-12-03T19:58:59.747 に答える
0

実際のファイルをホストしているサーバーへのリンクを単に提供するだけでなく、クリックするとブラウザがそれらをダウンロードしますか?

例えば

<a href="http://www.assets.com/file.mp3">File</a>
于 2012-12-03T20:04:20.283 に答える