[ETC] FILE UUID 쓰는이유, object storage
File UUID 쓰는 이유
- 리눅스 파일 이름 인코딩 시스템은 윈도우와 달라서 윈도우의 파일 이름명을 그대로 쓰게되면 리눅스에서는 이름이 깨져서 나온다.
-
따라서 UUID 로 파일 이름을 변환해서 저장을 해야된다.
-
파일 이름 UUID 는 보통 시간을 기준으로 랜덤으로 생성한다. (TimeStamp 방식인듯)
- File UUID 와 File 이름을 쌍으로 관리하는 테이블을 DB에 만들어서 관리를 해야된다.
예)
table_attachFile ( FileGrpSeqNo, Path, UUIDName, FileName, extention, size, regDate, editDate )
- 각 게시글별로 첨부파일을 관리해야 되기 때문에 카테고리용 테이블을 새로 만든다.
tb)fileMap ( fileGrpSeqNo, BBSCategory, regDate, editDate )
object storage
-
종래의 Dext5 Upload 같이 백엔드에서 업로드 구현시에는 그 SDK의 각 메소드들, 복잡한 프로세스들을 다 알아야 되는데 object storage 를 사용하면 해당 http url과 인증 키, 파일 UUID 만 알면된다.
- 대표적으로 아마존 EC2 가 있다.
- PUT ~
/~/FileUUID 형식으로 HTTP 통신으로 업로드한다. - JSON 내용에 파일 stream 이 올라간다.
- 파일이 어디에 저장되는지는 AWS 만 알고있으며, 사용자는 파일 UUID와 key 만 알고있으면 된다.
- backend 는 FILE UUID 와 key 만 관리하면 된다. (DB의 테이블을 만들어서 관리하는듯)