【问题标题】:How do I integrate Multer and Multer-S3 with MongoDB?如何将 Multer 和 Multer-S3 与 MongoDB 集成?
【发布时间】:2018-01-20 10:22:18
【问题描述】:

我决定使用 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 到底做了什么,每个参数代表什么?

【问题讨论】:

    标签: mongodb amazon-s3 multer multer-s3


    【解决方案1】:

    假设你有用户的用户名,你可以通过改变key来命名文件。

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

    或者您可以将照片文件放在这样的文件夹中:

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

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

    【讨论】:

      猜你喜欢
      • 2021-06-10
      • 2021-04-05
      • 2021-04-24
      • 2017-05-22
      • 2021-02-07
      • 1970-01-01
      • 2022-09-29
      • 1970-01-01
      • 2019-02-24
      相关资源
      最近更新 更多