2016-02-13 66 views
0

我嘗試使用管道方法使用express.js和request.js從Amazon S3下載文件。如何使用express.js和request.js從Amazon S3下載文件?

但是,當我去:本地主機:3000 /下載 瀏覽器下載一個文件的名稱爲「下載」我怎麼能爲瀏覽器下載,如「myFile.zip」設置文件名?

這是我的代碼:

var express = require('express'); 
var app = express(); 
var request = require('request'); 

app.get('/download', function(req, res){ 
    request('https://s3-us-west-2.amazonaws.com/bucket-name/object.zip') 
    .pipe(res.set('Content-Type', 'application/zip')) 
}); 

app.listen(3000); 

任何幫助,將不勝感激!

回答

0

HTTP有一個名爲Content-Disposition的標題,它允許您指定文件名。這是你的程序將其設置爲下載到myFile.zip:

var express = require('express'); 
var app = express(); 
var request = require('request'); 

app.get('/download', function(req, res){ 
    request('https://s3-us-west-2.amazonaws.com/bucket-name/object.zip') 
    .pipe(res.set('Content-Type', 'application/zip').set('Content-Disposition', 'inline; filename="myFile.zip"') 
}); 

app.listen(3000); 

來源:https://stackoverflow.com/a/1741508/2329281

+0

非常感謝,這是解決方案! –