Skip to main content
Sonamu는 @upload 데코레이터와 UploadedFile 클래스를 통해 파일 업로드를 쉽게 처리할 수 있습니다.

파일 업로드 흐름

@upload 데코레이터

파일 업로드 API를 만들 때 사용합니다.

단일 파일 업로드

클라이언트 요청:

다중 파일 업로드

클라이언트 요청:

파일 접근

**Sonamu.getContext()**의 files 속성으로 업로드된 파일에 접근합니다.
단일 파일 접근: 배열의 첫 번째 요소 사용
다중 파일 접근: 배열 순회

사용 예제

UploadedFile 클래스

업로드된 파일을 래핑하는 클래스입니다.

속성

원본 파일명

메서드

buffer

파일을 Buffer로 접근합니다.

md5()

파일의 MD5 해시를 계산합니다.
용도:
  • 파일 중복 체크
  • 파일 무결성 검증
  • 고유한 파일명 생성

saveToDisk(diskName, key)

파일을 디스크에 저장합니다.
반환값: 저장된 파일의 URL (unsigned)

실전 예제

1. 프로필 사진 업로드

2. 다중 이미지 업로드

3. 파일 타입별 검증

4. MD5 해시로 중복 체크

5. 디스크 선택

파일 조회

Storage Manager를 사용하여 저장된 파일을 조회합니다.

파일 읽기

파일 다운로드 API

URL 가져오기

Signed URL (S3)

파일 삭제

주의사항

파일 업로드 시 주의사항:
  1. 파일 검증 필수: 타입, 크기, 확장자 검증
  2. 고유한 파일명 사용: 덮어쓰기 방지
  3. 경로 검증: 디렉토리 트래버설 방지
  4. 파일 크기 제한: 메모리 초과 방지
  5. MIME 타입 검증: 확장자만 믿지 말 것

다음 단계

Storage Manager

여러 디스크 관리하기

스토리지 드라이버

fs, S3 드라이버 설정

URL 빌더

파일 URL 생성하기