在 Node.js 应用程序中从 AWS S3 下载文件

问题描述

我有文件上传到 AWS S3 存储桶的代码

var upload = multer({
 storage: multerS3({
     s3: s3,bucket: 'mybucketname',key: function (req,file,cb) {
          cb(null,Date.Now().toString())
     }
   }),fileFilter: myfilefiltergeshere...

})

我想下载上传的源。我不知道怎么做,因为我真的不知道如何识别 S3 上的文件。它是上传中的关键字段,还是我必须指定的其他内容

解决方法

您可以下载

import AWS from 'aws-sdk'

AWS.config.update({
  accessKeyId: '....',secretAccessKey: '...',region: '...'
})

const s3 = new AWS.S3()

async function download (filename) {
  const { Body } = await s3.getObject({
    Key: filename,Bucket: 'mybucketname'
  }).promise()
  return Body
}

const dataFiles = await Promise.all(files.map(file => download(file)))

我在数组中有文件,这就是我使用 files.map 的原因,但我想您可以查看某些指导类型的代码,这可能对您有所帮助。 如需更多信息,请阅读this