javascript - 如何将文件从 AWS S3 下载到客户端设备?

标签 javascript node.js amazon-web-services amazon-s3

查看了所有关于如何将文件从 S3 下载到本地磁盘的教程。我遵循了所有解决方案,它们所做的是将文件下载到服务器而不是客户端。我目前的代码是

app.get('/download_file', function(req, res) {
  var file = fs.createWriteStream('/Users/arthurlecalvez/Downloads/file.csv');
  file.on('close', function(){console.log('done'); });
  s3.getObject({ Bucket: 'data.pool.al14835', Key: req.query.filename }).on('error', function (err) {
   console.log(err);
   }).on('httpData', function (chunk) {
      file.write(chunk);
   }).on('httpDone', function () {
       file.end();
   }).send();

  res.send('success')

 })

然后我该如何将其发送给客户,以便将其下载到他们的设备上?

最佳答案

你可以像那样使用 SignedURL

var params = {Bucket: bucketname , Key: keyfile , Expires: 3600 , ResponseContentDisposition :  `attachment; filename="filename.ext"` };
var url = s3.getSignedUrl('getObject', params);

生成的链接将强制下载名为 filename.ext 的文件

关于javascript - 如何将文件从 AWS S3 下载到客户端设备?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48456537/

相关文章:

javascript - 如何强制特定包的转译

amazon-web-services - 只读 AWS CLI 访问严格的 CloudWatch 计费指标

amazon-web-services - 为什么我无法远程登录我的 aws 实例?

amazon-web-services - Elastic Beanstalk (EB) 默认地址/URL 上的 HTTPS(无自定义域名)

javascript - Zendesk 支持 SDK 的 RCT_EXPORT_METHOD

javascript - 使用 WebView 将按钮文本从 Javascript 返回到 Java

node.js - Hapi js - 如何发送请求让服务器进行基本身份验证?

node.js - Express.js - 任何显示文件/目录列表的方式?

javascript - 在页面加载时显示 bootstrap 2.0 模式的最佳方法是什么。

javascript - 为什么 jQuery 选择器适用于 Chrome 但不适用于 Safari?