Как использовать динамическое имя корзины в Multer-s3 для загрузки файла - PullRequest
0 голосов
/ 22 мая 2018

Я пытаюсь загрузить файл в AWS S3, используя узел js.

Мое требование - использовать динамическое значение для корзины в объекте хранения multerS3

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 идет как неопределенный.

Нужна помощь для решения этой проблемы.

MyПочтальон запрос, как показано ниже

enter image description here

Спасибо за любую помощь.

1 Ответ

0 голосов
/ 26 сентября 2018

Если вы используете Postman и у вас есть файл в качестве параметра, ничего больше после него не будет включено.

Поменяйте местами порядок ваших параметров, поместите bucketName перед файлом, и вы увидите его в теле.

На первом рисунке показан неправильный порядок, и в теле не будет элемента bucketName.Вторая картинка будет правильно проходить через Busboy, и тело будет иметь элемент bucketName «testName».

This will have a blank body using Busboy and Node

body.bucketName will return 'testName'

...