Business Rules(MyBox) - this-is-spear/numble-mybox GitHub Wiki
용어 정리
영어 | 한글 | 설명 |
---|---|---|
File | 파일 | 사용자가 업로드한 데이터를 의미한다. |
Direcotry | 디렉토리 | 파일을 담는 폴더를 의미한다. 폴더는 비어있을 수 있다. |
Extension | 파일 확장자 | 파일의 확장자를 의미한다. |
MEMBER | 회원 | 사용자의 권한 중 회원의 권한을 의미한다. |
Authority | 권한 | 사용자가 접근할 수 있는 권한을 의미한다. |
모델링
Domain
File
- 상태
- 식별자, 파일의 이름, 크기, 파일 확장자, 파일 주인의 정보를 가진다.
- 식별자는
String
타입이다. - 파일의 이름을 비어있을 수 없다.
- 파일 이름은 특수문자를 허용하지 않는다.
- 파일 이름은 2 글자 이상 10 글자 이하여야 한다.
- 크기는 20MB 미만이어야 한다.
- 파일 주인의 정보는 사용자의 식별자 정보이다.
- 식별자는
- 식별자, 파일의 이름, 크기, 파일 확장자, 파일 주인의 정보를 가진다.
- 행위
- 파일 이름을 변경한다.
Directory
- 상태
- 식별자, 디렉토리 이름, 하위 아이템 정보를 가진다.
- 식별자는
String
타입이다. - 디렉토리 이름은 비어있을 수 없다.
- 디렉토리 이름은 특수문자를 허용하지 않는다.
- 디렉토리 이름은 2 글자 이상 10 글자 이하여야 한다.
- 하위 아이템 정보는 자신이 포함하는 파일과 디렉토리의 정보들이다.
- 식별자는
- 식별자, 디렉토리 이름, 하위 아이템 정보를 가진다.
- 행위
- 디렉토리 이름을 변경한다.
UI
FileController
- 사용자의 권한과 파일 식별자를 입력받아 파일 정보를 조회한다.
- 응답
MediaType
은APPLICATION_JSON
이다. - 사용자는
MEMEBER
이상 권한을 가져야 한다. - 파일 식별자로 입력받는
String
타입은 비어있을 수 없고 20글자가 넘지 않는다.
- 응답
- 사용자의 권한과 파일 식별자, 새로운 이름을 입력받아 파일 이름을 수정한다.
- 요청
MediaType
은APPLICATION_JSON
이다. - 사용자는 MEMEBER 이상 권한을 가져야 한다.
- 새로운 이름은 10글자 이하여야 하며 특수문자는 허용하지 않는다.
- 파일 식별자로 입력받는
String
타입은 비어있을 수 없고 20글자가 넘지 않는다.
- 요청
- 사용자의 권한과 파일 식별자, 디렉토리 식별자를 입력받아 파일을 업로드한다.
- 응답
MediaType
은APPLICATION_OCTET_STREAM
이다. - 사용자는
MEMEBER
이상 권한을 가져야 한다. - 사용자 권한에 맞는 허용량을 넘기지 않는지 확인한다.
- 응답
- 사용자의 권한과 파일 식별자를 입력받아 파일을 다운로드한다.
- 응답
MediaType
은APPLICATION_OCTET_STREAM
이다. - 사용자는
MEMEBER
이상 권한을 가져야 한다. - 파일 식별자로 입력받는
String
타입은 비어있을 수 없고 20글자가 넘지 않는다.
- 응답
- 사용자의 권한과 파일 식별자를 입력받아 파일을 삭제한다.
- 사용자는 MEMEBER 이상 권한을 가져야 한다.
- 파일 식별자로 입력받는
String
타입은 비어있을 수 없고 20글자가 넘지 않는다.
DirectoryController
- 사용자의 권한과 디렉토리 식별자를 입력받아 디렉토리를 조회한다.
- 응답
MediaType
은APPLICATION_JSON
이다. - 사용자는
MEMEBER
이상 권한을 가져야 한다. - 디렉토리 식별자로 입력받는
String
타입은 비어있을 수 없다,
- 응답
- 사용자의 권한과 디렉토리 식별자, 새로운 이름을 입력받아 디렉토리 이름을 수정한다.
- 요청
MediaType
은APPLICATION_JSON
이다. - 사용자는
MEMEBER
이상 권한을 가져야 한다. - 새로운 이름은 10글자 이하여야 하며 특수문자는 허용하지 않는다.
- 디렉토리 식별자로 입력받는
String
타입은 비어있을 수 없다,
- 요청
- 사용자의 권한과 기존 디렉토리 식별자를 입력받아 디렉토리를 생성한다.
- 사용자는
MEMEBER
이상 권한을 가져야 한다. - 디렉토리 식별자로 입력받는
String
타입은 비어있을 수 없다,
- 사용자는
- 사용자의 권한과 디렉토리 식별자를 입력받아 디렉토리를 삭제한다.
- 사용자는
MEMEBER
이상 권한을 가져야 한다. - 디렉토리 식별자로 입력받는
String
타입은 비어있을 수 없다,
- 사용자는
- 사용자의 권한과 디렉토리 식별자를 입력받아 디렉토리를 다운로드 한다.
- 사용자는
MEMEBER
이상 권한을 가져야 한다. - 디렉토리 식별자로 입력받는
String
타입은 비어있을 수 없다,
- 사용자는
Business
DirectoryCommandService
- 사용자의 식별자와 상위 디렉토리 식별자, 디렉터리 이름를 입력해 디렉토리를 생성한다.
- 사용자의 상위 디렉토리 접근 권한(
Authority
)을 확인한다. - 디렉터리 정보를 저장한다.
- 사용자의 상위 디렉토리 접근 권한(
- 사용자의 식별자와 디렉터리 식별자를 입력해 디렉토리를 삭제한다.
- 사용자의 디렉토리 접근 권한(
Authority
)을 확인한다. - 디렉터리 정보를 삭제한다.
- 사용자의 디렉토리 접근 권한(
- 사용자의 식별자와 디렉토리 식별자, 새로운 이름를 입력해 디렉토리 이름을 수정한다.
- 사용자의 디렉토리 접근 권한(
Authority
)을 확인한다. - 디렉터리 이름을 수정한다.
- 사용자의 디렉토리 접근 권한(
- 사용자의 식별자와 디렉터리 식별자를 입력해 디렉토리를 다운로드 한다.
- 사용자의 디렉토리 접근 권한(
Authority
)을 확인한다. - 디렉터리 내부 파일 들을 다운로드한다.
- 폴더에 감싸 압축한다.
- 사용자의 디렉토리 접근 권한(
FileCommandService
- 사용자의 식별자, 디렉토리 식별자, 파일 식별자를 입력해 파일을 업로드한다.
- 사용자의 현재 디렉토리 접근 권한(
Authority
)을 확인한다. - 파일의 확장자를 식별한다.
- 파일 시스템에 업로드한다.
- 파일 정보를 저장한다.
- 사용자의 현재 디렉토리 접근 권한(
- 사용자의 식별자와 파일 식별자를 입력해 파일을 다운로드한다.
- 사용자의 파일 접근 권한(
Authority
)을 확인한다. - 파일 시스템에서 파일을 가져온다.
- 가져온 파일의 이름을 기존 이름으로 변경한다.
- 사용자에게 전달한다.
- 사용자의 파일 접근 권한(
- 사용자의 식별자와 파일 식별자, 새로운 이름을 입력해 파일 이름을 수정한다.
- 사용자의 파일 접근 권한(
Authority
)을 확인한다. - 파일 이름을 수정한다.
- 사용자의 파일 접근 권한(
DirectoryReadService
- 사용자의 식별자와 디렉토리 식별자를 입력해 디렉토리 정보와 내부 정보를 확인한다.
- 사용자의 디렉토리 접근 권한(
Authority
)을 확인한다.
- 사용자의 디렉토리 접근 권한(
FileReadService
- 사용자의 식별자와 파일 식별자를 입력해 파일 정보를 조회한다.
- 사용자의 파일 접근 권한(
Authority
)을 확인한다.
- 사용자의 파일 접근 권한(
Infra
CustomFileSystem
- BoxObject을 업로드한다.
- BoxObject의 크기가 20MB를 넘어가선 안된다.
- BoxObject을 다운로드한다.
- BoxObject의 크기가 20MB를 넘어가선 안된다.