파일업로드

김승수·2023년 2월 23일
0

파일업로드

기업협업중에 구글드라이브에 파일업로드 구현을 할일이 생겼다.

const uploadFileGoogle = asyncErrorHandler(async (req, res) => {
  const [filesObj] = req.files;
  await uploadFileService.uploadFileGoogle(filesObj);
  return res.status(201).json({ message: "SUCCESS_UPLOAD_FILE" });
});

이렇게 만들었는데 하나만 올라가고 여러갠 안되더라
고민후 간단하게 생각했다, 그냥 갯수만큼 돌리면되는거아닌가

const uploadFileGoogle = asyncErrorHandler(async (req, res) => {
  const filesObjs = req.files;
  const uploads = filesObjs.map(async (filesObj) => {
    await uploadFileService.uploadFileGoogle(filesObj);
  });
  return res
    .status(201)
    .json({ message: `${filesObjs.length}개 파일 업로드 성공!` });
});

그래서 맵으로 돌려버렸다.
1~3개정도는 괜찮았는데 5개 넘어가기 시작하니까 파일이 짤리기시작했다, 아맞다 비동기

그래서 약속시켜줌

const uploadFileGoogle = asyncErrorHandler(async (req, res) => {
  const filesObjs = req.files;
  const uploads = filesObjs.map(async (filesObj) => {
    await uploadFileService.uploadFileGoogle(filesObj);
  });
  await promise.all(uploads);
  return res
    .status(201)
    .json({ message: `${filesObjs.length}개 파일 업로드 성공!` });
});

잘 올라간다.

profile
외부형 확장뇌

0개의 댓글