• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

multer를 사용해서 사진 혹은 동영상을 업로드 할 때 url을 통해서 사진은 접근이 가능하나 동영상은 404에러가 뜹니다.

22.07.05 15:33 작성 조회수 275

0

 안녕하세요. 오랜만에 질문드립니다. 제가 사진이나 동영상등을 멀터를 통해서 업로드 한 후 사진과 동영상을 각각 uploads/image, uploads/video 디렉터리에 disk storage 방식으로 저장하게 하였습니다. 그리고 저장된 파일이름과 서버url을 결합시켜서 db에 저장하게 하였고 사진은 url을 통해서 접근이 가능한데 동영상은 url로 접근할 때 404에러가 뜨더라구요. 동영상이 저장된 디렉터리로 이동시 동영상 파일이 온전히 있고 동시에 재생도 가능했습니다. 인코딩등의 문제가 관련이 있을까요?

답변 1

답변을 작성해보세요.

0

static 설정 어떻게하셨나요? 확장자나 모두 일치하나요? 동영상을 사진 폴더에 넣고도 접근해보세요.

이승훈님의 프로필

이승훈

질문자

2022.07.05

일단 사진 폴더에 동영상을 넣고 접근해도 결과는 안되는걸로 같았습니다. static 설정은 사진과 동영상을 처리하기 위해 아래처럼했습니다.

app.useStaticAssets(join(__dirname, "../uploads/image"), {
    prefix: "/media",
  });
  app.useStaticAssets(join(__dirname, "../uploads/video"), {
    prefix: "/media",
  });

 

dist 폴더 지우고 서버 껐다 켜도 동일하신가요? /media/이미지는 되는데 /media/비디오는 404인 거죠?

참고로 join은 저렇게 사용하면 join을 쓰는 의미가 없습니다(돌아가긴 합니다), join(__dirname, '..', 'uploads', 'image') 이렇게 써야 합니다.

이승훈님의 프로필

이승훈

질문자

2022.07.05

 일단 dist 폴더를 지우고 서버를 다시켜도 404가 뜹니다.

{"success":false,"statusCode":404,"message":"Http Exception이 발생하였습니다.","timestamp":"Tue Jul 05 2022 19:28:15 GMT+0900 (Korean Standard Time)","reason":"Cannot GET /media/kakaotalk_20220618_154257065-1657011632337.mp4","error":"Not Found"}

만약 동영상을 디스크 스토리지 방식으로 업로드 했을 때 서버 디렉터리에 /uploads/video라는 디렉터리에 파일(mp4파일입니다.)이 저장되고 여기에 url을 입히게 됬을 때 형식은 아래와 같습니다.

http://localhost:5147/media/kakaotalk_20220618_154257065-1657011632337.mp4

사진은 아래와 같습니다.

http://localhost:5147/media/img1-1657016922175.jpg

제 깃헙주소를 올려드릴까요?