[ETC] FILE UUID 쓰는이유, object storage

최대 1 분 소요

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의 테이블을 만들어서 관리하는듯)