Node.js 如何在Multer-s3中使用动态bucket名称进行文件上传

Node.js 如何在Multer-s3中使用动态bucket名称进行文件上传,node.js,amazon-web-services,amazon-s3,multer-s3,Node.js,Amazon Web Services,Amazon S3,Multer S3,我正在尝试使用NodeJS将文件上传到AWSS3 我的要求是在multerS3存储对象中使用bucket的动态值 storage: multerS3({ s3: s3, bucket: function (req, file, cb) { console.log(" bucketName is >> "+JSON.stringify(req.bucketName)); cb(null, req.bu

我正在尝试使用NodeJS将文件上传到AWSS3

我的要求是在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)
        }
    })
我试图通过请求对象传递值,并在bucket参数中使用它。但它是未定义的

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

需要帮助来解决这个问题

我的邮递员要求如下


感谢您的帮助。

如果您使用Postman并将文件作为参数,则在包含该文件后,将不再包含其他内容

交换参数的顺序,并将bucketName放在文件前面,您将在正文中看到它

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