我正在使用node.js api上传/下载配置文件图像。所有配置文件图像都存储在AWS S3存储中。
如何将文件从s3下载到node.js路由,然后将文件返回给客户端中。我不能使用文件托管,因为所有路由都受令牌保护,用户可能会或可能无法基于某些逻辑访问某些配置文件图像。
尽管S3 SDK效果很好,但是我使用了来自AWS的简单流来读取并将数据的插条发送到响应中。
使用getObject()下载文件表格s3 buccet。请参阅以下示例: -
var stream = require('stream');
const s3 = require('../config/s3.config.js');
exports.doDownload = (req, res) => {
const s3Client = s3.s3Client;
const params = s3.downloadParams;
params.Key = req.params.filename;
s3Client.getObject(params)
.createReadStream()
.on('error', function(err){
res.status(500).json({error:"Error -> " + err});
}).pipe(res);
}