Backup API

概要

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間でのインポートは互換性の問題が発生する可能性があります

参考情報