Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
231 views
in Technique[技术] by (71.8m points)

javascript - How can I add the Accept-Ranges header to the response in nodejs

I'm getting a file from another server and pass it to the client with the following code (to download the file I'm using axios):

app.get('/download', (req, res) => {
    downloadFile(res)
})

async function downloadFile(res) {
    const url = 'http://www.sample-videos.com/video123/mp4/720/big_buck_bunny_720p_5mb.mp4'

    console.log('Connecting …')
    const { data, headers } = await Axios({
        url,
        method: 'GET',
        responseType: 'stream'
    })


    const totalLength = headers['content-length']
    let offset = 0

    res.set({
        "Content-Disposition": 'attachment; filename="big_buck_bunny_720p_5mb.mp4"',
        "Content-Type": "application/octet-stream",
        "Content-Length": totalLength,
        // "Range": `bytes=${offset}` // my problem is here ....
    });

    data.on('data', (chunk) => {
        res.write(chunk)
    })

    data.on('close', function () {
        res.end('success')
    })

    data.on('error', function () {
        res.send('something went wrong ....')
    })

}

So far everything is working properly.

my problem is to add the Accept-Ranges header, I tried a lot but I do not know How to do it? any help will be appreciated ...

question from:https://stackoverflow.com/questions/65941347/how-can-i-add-the-accept-ranges-header-to-the-response-in-nodejs

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

I think the only thing you need to do is to add it here:

res.set({
        "Content-Disposition": 'attachment; filename="big_buck_bunny_720p_5mb.mp4"',
        "Content-Type": "application/octet-stream",
        "Content-Length": totalLength,
        "Accept-Ranges": // add here the value your server accepts
    });

Check the Accept-Ranges documentation here: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Ranges

Its syntax is like this:

Accept-Ranges: <range-unit>
Accept-Ranges: none

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...