파일 업로드 에러: 0 바이트 파일을 다루는 법

dev_hee·2023년 1월 25일
0
post-thumbnail

파일 업로드 에러 발생

CRUD 서비스에서 파일을 첨부해서 게시물을 작성하는 경우 게시물이 정상적으로 업로드 되지 않는 버그가 발생했다.


위 영상처럼 게시물을 작성하더라도 업로드되지 않아서 작성된 게시물을 확인할 수 없었다.

서버측에게 api 로그중 에러가 발생한 경우가 있는지 확인해달라고 요청하였다.

확인 결과 0 바이트 파일 업로드를 시도하여 에러가 발생하였다.

0 바이트 파일은 무엇이고 어떻게 만들어진 것일까?

0바이트 파일이란

대부분의 파일은 몇 바이트, 킬로바이트, 또는 메가바이트 정보가 포함되어 있다. 하지만 0바이트 파일은 데이터를 포함하지 않는 파일로, 0바이트가 포함되어 있다.

데이터가 없는 파일? 생각보다 훨씬 자주 발생한다.

0바이트 파일은 일반적으로 파일이 잘못 처리된 경우 발생한다.

0바이트 파일이 생성되는 경우는 다음과 같다.

1. 이메일

보관된 이메일을 전달 받는 경우에, 특히 서로 다른 메일 클라이언트에 보관된 이메일을 전달받을 때 0바이트 파일이 생성된다. 종종 이메일 첨부 파일에서도 0바이트 파일이 나타날 수 있다. 모든 첨부 파일이 파일 변환 도구(이메일 계정 보관 및 보내기, 이메일 형식 변환, 이메일 컬링 등)를 거치는 것이 아니기 때문이다.

2. 파일 업로드 및 다운로드

파일 전송이 성공적으로 완료되지 않으면 0바이트 파일이 발생할 수 있다. 이는 웹 또는 FTP(파일 전송 프로토콜) 클라이언트를 통해 파일이 불완전하게 다운로드되거나 이메일 첨부 파일이 제대로 전송되지 않는 경우에 발생할 수 있다. 결과는 이름은 있지만 데이터는 없는 파일이다.

3. 운영 체제에서 처리할 수 없는 파일 속성 (확장자)

파일의 메타데이터(예: 파일 이름, 생성 시기 등과 같은 파일 에 대한 데이터)의 매개 변수에는 제한이 있다. 한 가지 예는 Windows 운영 체제에서 매우 긴 파일 및 폴더 이름과 관련된 이슈이다. 클라이언트가 자신의 시스템에서 파일을 열 수 있더라도 파일을 전송할 때 폴더 이름이 더 긴 폴더에 파일이 다운로드될 수 있으며 이로 인해 파일이 시스템에 잘못 저장되어 손상될 수 있다.

특히 확장자가 잘못된 파일의 경우에 운영체제가 이를 처리할 수 없으므로 0바이트 파일이 생성된다. 이번 이슈의 원인이었다.

4. 의도적으로 생성된 0바이트 파일

추가적인 의미를 제공하기 위해 빈 폴더를 생성하는 것과 같은 방식으로 폴더 목록에 추가 정보를 제공하기 위해 의도적으로 0바이트 파일을 생성할 수 있다.

오류 해결

따라서 클라이언트에서 업로드된 파일의 용량이 0 바이트인 경우에, 경고 메시지를 보여주는 식으로 문제를 해결할 수 있었다.

참고: 0바이트 파일이란 무엇이며 어떻게 처리합니까?

profile
🎨그림을 좋아하는 FE 개발자👩🏻‍💻

0개의 댓글