查看了所有关于如何将文件从 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/