Spaces:
Running
Running
| set -eu | |
| ROOT_DIR="${ROOT_DIR:-/app}" | |
| # HF Spaces 持久化目录 | |
| DATA_DIR="${DATA_DIR:-/data}" | |
| # 确保 /data 目录存在且可写;HF Space 未挂载持久存储时回退到 /app/data_local | |
| if [ ! -d "$DATA_DIR" ] || [ ! -w "$DATA_DIR" ]; then | |
| DATA_DIR="$ROOT_DIR/data_local" | |
| fi | |
| mkdir -p "$DATA_DIR" | |
| # 软链接 /app/data -> $DATA_DIR 让应用写入持久化存储 | |
| if [ ! -L "$ROOT_DIR/data" ] && [ -d "$ROOT_DIR/data" ]; then | |
| # 迁移已有数据 | |
| cp -an "$ROOT_DIR/data/." "$DATA_DIR/" 2>/dev/null || true | |
| rm -rf "$ROOT_DIR/data" | |
| fi | |
| ln -sfn "$DATA_DIR" "$ROOT_DIR/data" | |
| # 持久化 config.json:首次运行从镜像复制默认配置到 $DATA_DIR,后续使用 $DATA_DIR 中的配置 | |
| if [ ! -f "$DATA_DIR/config.json" ]; then | |
| cp "$ROOT_DIR/config.json" "$DATA_DIR/config.json" 2>/dev/null || true | |
| fi | |
| # 用 $DATA_DIR/config.json 覆盖镜像中的配置(实现持久化) | |
| cp -f "$DATA_DIR/config.json" "$ROOT_DIR/config.json" 2>/dev/null || true | |
| chmod 600 "$DATA_DIR/config.json" 2>/dev/null || true | |
| chmod 600 "$ROOT_DIR/config.json" 2>/dev/null || true | |
| # 输出实际使用的存储路径,便于排查 | |
| echo "[init_storage_hf] Using DATA_DIR=$DATA_DIR" | |
| echo "[init_storage_hf] /app/data -> $(readlink -f "$ROOT_DIR/data" 2>/dev/null || echo "$DATA_DIR")" | |