Spaces:
Running
Running
File size: 1,313 Bytes
c47ec10 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | #!/usr/bin/env sh
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")"
|