2016-02-13 64 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

非常感谢,这是解决方案! –

相关问题