【问题标题】:How to use dynamic bucket name in Multer-s3 for file upload如何在 Multer-s3 中使用动态存储桶名称进行文件上传
【发布时间】:2018-09-26 23:51:18
【问题描述】:

我正在尝试使用节点 js 将文件上传到 AWS S3。

我的要求是对multerS3存储对象中的bucket使用动态值

storage: multerS3({

        s3: s3,

        bucket:  function (req, file, cb) {
            console.log(" bucketName is >> "+JSON.stringify(req.bucketName));
            cb(null, req.bucketName)
        },

        limits : {
            fileSize : Number(Constants.UPLOADED_IMAGE_SIZE)
        },
        metadata: function (req, file, cb) {
            cb(null, { fieldName: file.fieldname });
        },

        key: function (req, file, cb) {
            cb(null, file.originalname)
        }
    })

我正在尝试通过请求对象传递值并在存储桶参数中使用它。但它是未定义的。

在这两种情况下 req.bucketName 和 req.body.bucketName 都是未定义的。

需要帮助来解决这个问题。

我的邮递员要求如下

感谢您的帮助。

【问题讨论】:

    标签: node.js amazon-web-services amazon-s3 multer-s3


    【解决方案1】:

    如果你使用 Postman 并且有一个文件作为参数,那么在它被包含之后就没有别的了。

    交换参数的顺序,在文件前面加上bucketName,你会在body中看到它。

    第一张图显示的顺序不正确,body 不会有 bucketName 元素。第二张图片将正确地通过 Busboy,并且主体将有一个 bucketName 元素“testName”。

    【讨论】:

      猜你喜欢
      • 2018-02-14
      • 2019-10-22
      • 2021-08-08
      • 2017-10-17
      • 1970-01-01
      • 2020-12-01
      • 2018-05-31
      • 2021-02-08
      • 1970-01-01
      相关资源
      最近更新 更多