Ошибка mkdir при загрузке изображения с помощью multer - PullRequest
0 голосов
/ 11 июня 2019

при загрузке файла и создании пути я получаю сообщение об ошибке создания папки: -

Error: EACCES: permission denied, mkdir '/opt/bitnami/apps/NodeJS-Login/uploads'
    at Object.fs.mkdirSync (fs.js:885:18)
    at Function.sync (/opt/bitnami/apps/NodeJS-Login/node_modules/mkdirp/index.js:71:13)
    at new DiskStorage (/opt/bitnami/apps/NodeJS-Login/node_modules/multer/storage/disk.js:21:12)
    at module.exports (/opt/bitnami/apps/NodeJS-Login/node_modules/multer/storage/disk.js:65:10)
    at new Multer (/opt/bitnami/apps/NodeJS-Login/node_modules/multer/index.js:15:20)

Я использую bitnami на AWS для размещения моего MEAN-приложения.

на моем основномФайл server.js Я добавил это: -

app.use(multer({ dest: './uploads/',
 rename: function (fieldname, filename) {
   return filename;
 },
}));

на модели схемы : -

companyLogo: {
                data: Buffer,
                type: String
                }

и в контроллер для маршрута: -

admin.companyLogo = fs.readFileSync(req.files.comLogo.path)
admin.companyLogo.type = 'image/png';

Что я должен сделать для загрузки изображения?Также мне нужно передавать другие значения ключа в форме данных вместо raw?

1 Ответ

0 голосов
/ 11 июня 2019

/ opt защищен от записи по умолчанию, поэтому здесь возможны исправления

1) Измените разрешения для / opt и разрешите пользователю писать в эту папку ( Не рекомендуется )

ИЛИ

2) Запустите server.js с привилегированным пользователем, таким образом, вы имеете полное право на каталог, и он позволит вам делать что угодно ( Не рекомендуется )

OR

3) Просто измените путь туда, где у пользователя есть доступ для записи ( Рекомендуется )

...