chatgpt2api / scripts /init_storage_hf.sh
li2895's picture
Update to v1.7.0 with HuggingFace adaptation
c47ec10
Raw
History Blame Contribute Delete
1.31 kB
#!/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")"