• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

lambda image resize시 이미지 파일명의 조건에 관한 문제 질문있습니다.

21.07.23 16:17 작성 조회수 382

0

안녕하세요 제로초님 항상 강의 잘 듣고 있습니다.
챕터 7에서 lambda 함수를 통해 이미지를 리사이징 하고 화면에 게시를 하는데,
이미지 파일명에 공백이 들어갈 경우 thumb폴더로 리사이징한 이미지가 들어가지 않습니다.
이런 경우 handler함수에서 공백 처리 로직을 넣고 해결하면 될듯 하지만...
원본 파일명을 유지한 채로 할 수 있는 방법이 없는지 궁금해서 질문드립니다.
이미지를 업로드 하였을 때 모습입니다. 클릭하여 이미지 줌으로 들어갈 시 /original/폴더에서 이미지를 가져오기 때문에 표시가 됩니다.
cloudwatch에서 에러 로그를 캡쳐했습니다.
브라우저 콘솔에서는 다음 처럼 /thumb/내부에 리사이즈 된 파일이 없음을 보여주고 있습니다.
업로드할 때 이미지 파일명에 공백을 제거해야만 정상적으로 동작하는것일까요?

답변 2

·

답변을 작성해보세요.

1

원본이나 리사이징 모두 파일명을 encodeURIComponent 해서 저장하세요. 공백이 %20으로 바뀝니다. 주소창에서는 공백으로 입력할 수 있습니다.

oogab님의 프로필

oogab

질문자

2021.07.23

감사합니다 문제가 어느정도 해결되었습니다!

0

oogab님의 프로필

oogab

질문자

2021.07.23

감사합니다 문제가 해결되었습니다.

그런데 이제 encode된 파일명으로 저장할 경우 한글로 구성된 파일명의 경우 자,모음이 8개 초과일시(공백포함 예로들어 제로초.png, 제롱총.png면 가능 하지만 젱롱총.png면 자모음 9개로 안됨...) S3에 저장은 되는데 화면에 표시가 안되고 uri주소가 그대로 나옵니다.

길이가 문제가 되는것 같은데 이런건 어떻게 해결 할 수 있을까요?

 

글자 수 제한이 있어서 이 부분은 해결하기 힘들 것 같습니다. 다시 encodeUriComponent를 풀고 띄어쓰기를 _같은 걸로 대체하세요.