如何将 Multer 和 Multer-S3 与 MongoDB 集成?



我决定采用 S3 路线来存储图像,而不是使用 Gridfs 进行。但我仍然对MongoDB将如何与Multer和S3集成感到困惑。

例如,假设我为每个用户收集了一个文档集合。 假设文档本身不包含将上传到我的 S3 云的个人资料图片。

但是,当我在前端显示用户列表时,如何确保为每个用户显示正确的个人资料图片?

我正在查看 multer-s3 文档,我注意到元数据将要更新为 S3 的文件的名称设置(我认为?

var upload = multer({
storage: multerS3({
s3: s3,
bucket: 'some-bucket',
metadata: function (req, file, cb) {
cb(null, {fieldName: file.fieldname});
},
key: function (req, file, cb) {
cb(null, Date.now().toString())
}
})
})

我想也许这个问题的一个很好的解决方案是将上传的每个文件命名为与将使用它的用户相同的名称。我可以修改元数据和关键功能,使它们与上传它们的人的用户名相同吗?cb到底是做什么的,每个参数代表什么?

假设您拥有用户的用户名,则可以通过更改密钥来命名文件。

key: function (req, file, cb) {
cb(null, username + ".jpg")
}

或者,您可以将照片文件放在文件夹中,如下所示:

key: function (req, file, cb) {
cb(null, username + "/profile.jpg")
}

包含/将允许您创建图像并将其放入文件夹中。

最新更新