我决定使用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到底是做什么的,它的每个参数代表什么?
发布于 2017-10-04 23:12:43
假设您拥有该用户的用户名,您可以通过更改密钥来命名该文件。
key: function (req, file, cb) {
cb(null, username + ".jpg")
}或者,您可以将照片文件放在文件夹中,如下所示:
key: function (req, file, cb) {
cb(null, username + "/profile.jpg")
}包含/将允许您在文件夹中创建和放置图像。
https://stackoverflow.com/questions/45643006
复制相似问题