개요
Backup API는 Fess 의 설정 데이터를 백업 및 복원하기 위한 API입니다. 크롤링 설정, 사용자, 역할, 사전 등의 설정을 내보내기/가져오기할 수 있습니다.
기본 URL
/api/admin/backup
엔드포인트 목록
| 메서드 | 경로 | 설명 |
|---|---|---|
| GET | /export | 설정 데이터 내보내기 |
| POST | /import | 설정 데이터 가져오기 |
설정 데이터 내보내기
요청
GET /api/admin/backup/export
파라미터
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
types | String | 아니오 | 내보내기 대상 (쉼표로 구분, 기본값: all) |
내보내기 대상 타입
| 타입 | 설명 |
|---|---|
webconfig | Web 크롤링 설정 |
fileconfig | 파일 크롤링 설정 |
dataconfig | 데이터스토어 설정 |
scheduler | 스케줄 설정 |
user | 사용자 설정 |
role | 역할 설정 |
group | 그룹 설정 |
labeltype | 라벨 타입 설정 |
keymatch | 키 매치 설정 |
dict | 사전 데이터 |
all | 모든 설정 (기본값) |
응답
바이너리 데이터 (ZIP 형식)
Content-Type: application/zip Content-Disposition: attachment; filename="fess-backup-20250129-100000.zip"
ZIP 파일 내용
fess-backup-20250129-100000.zip
├── webconfig.json
├── fileconfig.json
├── dataconfig.json
├── scheduler.json
├── user.json
├── role.json
├── group.json
├── labeltype.json
├── keymatch.json
├── dict/
│ ├── synonym.txt
│ ├── mapping.txt
│ └── protwords.txt
└── metadata.json
설정 데이터 가져오기
요청
POST /api/admin/backup/import
Content-Type: multipart/form-data
요청 본문
--boundary
Content-Disposition: form-data; name="file"; filename="fess-backup.zip"
Content-Type: application/zip
[바이너리 데이터]
--boundary
Content-Disposition: form-data; name="overwrite"
true
--boundary--
필드 설명
| 필드 | 필수 | 설명 |
|---|---|---|
file | 예 | 백업 ZIP 파일 |
overwrite | 아니오 | 기존 설정 덮어쓰기 (기본값: false) |
types | 아니오 | 가져오기 대상 (쉼표로 구분, 기본값: all) |
응답
{
"response": {
"status": 0,
"message": "Backup imported successfully",
"imported": {
"webconfig": 5,
"fileconfig": 3,
"dataconfig": 2,
"scheduler": 4,
"user": 10,
"role": 5,
"group": 3,
"labeltype": 8,
"keymatch": 12,
"dict": 3
}
}
}
사용 예
전체 설정 내보내기
curl -X GET "http://localhost:8080/api/admin/backup/export" \
-H "Authorization: Bearer YOUR_TOKEN" \
-o fess-backup.zip
특정 설정 내보내기
# Web 크롤링 설정과 사용자 설정만 내보내기
curl -X GET "http://localhost:8080/api/admin/backup/export?types=webconfig,user" \
-H "Authorization: Bearer YOUR_TOKEN" \
-o fess-backup-partial.zip
설정 가져오기
curl -X POST "http://localhost:8080/api/admin/backup/import" \
-H "Authorization: Bearer YOUR_TOKEN" \
-F "file=@fess-backup.zip" \
-F "overwrite=false"
기존 설정을 덮어쓰고 가져오기
curl -X POST "http://localhost:8080/api/admin/backup/import" \
-H "Authorization: Bearer YOUR_TOKEN" \
-F "file=@fess-backup.zip" \
-F "overwrite=true"
특정 설정만 가져오기
# 사용자와 역할만 가져오기
curl -X POST "http://localhost:8080/api/admin/backup/import" \
-H "Authorization: Bearer YOUR_TOKEN" \
-F "file=@fess-backup.zip" \
-F "types=user,role" \
-F "overwrite=false"
백업 자동화
#!/bin/bash
# 매일 오전 2시에 백업을 가져오는 스크립트 예시
DATE=$(date +%Y%m%d)
BACKUP_DIR="/backup/fess"
curl -X GET "http://localhost:8080/api/admin/backup/export" \
-H "Authorization: Bearer YOUR_TOKEN" \
-o "${BACKUP_DIR}/fess-backup-${DATE}.zip"
# 30일 이상 된 백업 삭제
find "${BACKUP_DIR}" -name "fess-backup-*.zip" -mtime +30 -delete
주의 사항
백업에는 비밀번호 정보도 포함되므로 안전하게 보관하세요
가져오기 시
overwrite=true를 지정하면 기존 설정이 덮어쓰여집니다대규모 설정의 경우 내보내기/가져오기에 시간이 걸릴 수 있습니다
버전이 다른 Fess 간의 가져오기는 호환성 문제가 발생할 수 있습니다
참고 정보
Admin API 개요 - Admin API 개요
백업 - 백업 관리 가이드
유지보수 - 유지보수 가이드