Хранение и выборка изображений на удаленном сервере (AWS) - PullRequest
0 голосов
/ 01 апреля 2020

Я пытаюсь сохранить файлы изображений на удаленном сервере.

Удаленный сервер работает на ОС 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, и все они там.

В чем может быть проблема?

...