如何使用express.js和request.js从Amazon S3下载文件?

时间:2016-02-13 23:50:57

标签: javascript node.js express amazon-s3

我尝试使用管道方法使用express.js和request.js从Amazon S3下载文件。

但是当我去: localhost:3000 /下载 浏览器下载一个名为&#34的文件;下载"我如何设置要下载的浏览器的文件名,例如" 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);

任何帮助都将受到赞赏!

1 个答案:

答案 0 :(得分: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