Я пытаюсь сохранить файлы изображений на удаленном сервере.
Удаленный сервер работает на ОС Ubuntu16.04, а путь к проекту - - /home/ubuntu/projects/back/
.
. изображения хранятся в - /home/ubuntu/projects/back/MyBackEndProject/public/uploadedFiles/uid/
Я определил несколько хранилищ или подкаталогов (используя Multer) для хранения файлов различного типа - все в папке /public/
.
Это один из определенных хранилищ -
// user images storage
const storage1 = multer.diskStorage({
destination: (req, file, cb) => {
const destination = path.join(
__dirname,
"/../../public/uploadedFiles/",
req.body.uid.toString()
);
fs.mkdirsSync(destination);
cb(null, destination);
},
filename: (req, file, cb) => {
cb(
null,
file.originalname
);
}
});
const uploadUserImage = multer({ storage: storage1 });
И API, который использует это хранилище -
// upload user image
router.post("/upload-user-image", uploadUserImage.fields([{ name: "user_image", maxCount: 1 }]),
async (req, res) => {
// specify server url
const remoteUrl = "http://xxx.xxx.xxx.xxx:xxxx"
const { uid } = req.body;
try{
// read req.files and store image full path in database
// using remoteUrl variable
res.json({ data, is_error: false });
} catch (e) {
// log error
return res
.status(400)
.json({ data: null, is_error: true, err_message: e.message });
}
}
);
API работает должным образом, проблема в том, где хранится изображение. Вместо будучи сохраненным в MyBackEndProject/public/uploadedFiles/uid/
, он сохраняется в MyBackEndProject/uploadedFiles/uid/
.
Это не то, что я хочу, так как я создал папку public
stati c, используя app.use(express.static(__dirname+"/public"))
, чтобы я мог получить все изображения .
Сервер уже обновлен последним коммитом из репозитория, и я даже проверил файлы с помощью Filezilla, и все они там.
В чем может быть проблема?