- 간단한 텍스트/파일을 저장하는 API 서버
- node 14.x
- yarn
- java jdk 8
- docker
WORKSPACE="./front/webclipboard"
OUTPUT_DIR="../../src/main/resources/static/"
cd $WORKSPACE
yarn install
CI=false yarn run build
mkdir -p $OUTPUT_DIR
cp -r build/* $OUTPUT_DIR
./gradlew clean build --exclude-task test
- EXPOSE: 80/tcp, 443/tcp
- 환경 변수
KEY | Description | Example |
---|---|---|
STORAGE_PATH | 파일 저장 경로 | /data/storage |
KEY_STORE | PKCS12 형식 인증서 파일 | /ssl/cert-bundle.p12 |
KEY_STORE_PASSWORD | 인증서 비밀번호 | password |
- 파일명에 파일 ID, 타입, 만든이, 상태를 저장
- 아래 json을 url safe base64 인코딩해 파일명으로 사용
{
"id": "8f7a67aa-834f-11ec-a8a3-0242ac120002",
"type": "text",
"creator": "admin",
"hash": "5eb63bbbe01eeed093cb22bb8f5acdc3"
}
- id: 파일 식별용 uuid
- type: text | file
- creator: 만든이
- hash: 파일 내용 md5 해시
- 업로드 완료 후 해시를 계산하므로 업로드 실패시 값이 null일 것
- GET /api/files/{creator}
Parameter | Description |
---|---|
creator | 만든이 |
Status Code | Description |
---|---|
200 OK | 성공 |
Example
[
{
"id": "8f7a67aa-834f-11ec-a8a3-0242ac120002",
"type": "text",
"creator": "admin",
"hash": "5eb63bbbe01eeed093cb22bb8f5acdc3"
},
{
"id": "3f7a67aa-834f-11ec-a8a3-0242ac120002",
"type": "file",
"creator": "admin",
"hash": "1eb63bbbe01eeed093cb22bb8f5acdc3"
}
]
- DELETE /api/file/{id}/{creator}
Parameter | Description |
---|---|
id | 파일 id |
creator | 만든이 |
Status Code | Description |
---|---|
200 OK | 성공 |
401 Unauthorized | 파일 만든이가 아님 |
404 Not Found | id에 해당하는 파일이 없음 |
- GET /api/text/{id}/{creator}
Parameter | Description |
---|---|
id | 파일 id |
creator | 만든이 |
Status Code | Description |
---|---|
200 OK | 성공 |
401 Unauthorized | 파일 만든이가 아님 |
404 Not Found | id에 해당하는 파일이 없음 |
Example
"hello world"
- POST /api/text/{creator}
"this is content"
Parameter | Description |
---|---|
creator | 만든이 |
Request Body | 내용 |
Status Code | Description |
---|---|
200 OK | 성공 |
성공시 id 반환
Example
"1eb63bbbe01eeed093cb22bb8f5acdc3"
- GET /api/file/{id}/{creator}
Parameter | Description |
---|---|
id | 파일 id |
creator | 만든이 |
Status Code | Description |
---|---|
200 OK | 성공 |
401 Unauthorized | 파일 만든이가 아님 |
404 Not Found | id에 해당하는 파일이 없음 |
- POST /api/file/{creator}
Parameter | Description |
---|---|
creator | 만든이 |
Request Body | MultipartFile |
Status Code | Description |
---|---|
200 OK | 성공 |
성공시 id 반환
Example
"1eb63bbbe01eeed093cb22bb8f5acdc3"