Spaces:
Sleeping
Sleeping
File size: 1,857 Bytes
05c6ec5 |
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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
#!/bin/sh
# 如果命令失败则立即退出
set -e
# 定义临时密钥文件的路径
KEY_FILE_PATH="/tmp/keys.txt"
echo "--- 正在检查 Secrets ---"
# 检查 API_PASSWORD 是否已设置
if [ -z "${API_PASSWORD}" ]; then
echo "[错误] 必须在 Hugging Face Secrets 中设置 API_PASSWORD !"
exit 1
fi
# 检查 key_list 是否已设置
if [ -z "${key_list}" ]; then
echo "[错误] 必须在 Hugging Face Secrets 中设置 key_list !"
exit 1
fi
echo "--- 正在从 Secret 'key_list' 创建临时密钥文件 (${KEY_FILE_PATH}) ---"
# 从环境变量 key_list 读取内容,并写入临时文件
# 使用 'echo -e' 来解释可能存在的 '\n' 换行符
# 将标准错误重定向到 /dev/null 以避免打印潜在的密钥内容(尽管通常 echo 不会)
echo -e "${key_list}" > "${KEY_FILE_PATH}" 2>/dev/null
# 验证文件是否创建成功且非空
if [ ! -s "${KEY_FILE_PATH}" ]; then
echo "[错误] 创建密钥文件失败或文件为空!请检查 'key_list' Secret 的内容。"
exit 1
fi
echo "--- 密钥文件已生成 ---"
# !!! 【重要】生产环境中不要取消下面这行的注释,避免日志泄露 !!!
# echo "密钥文件内容预览 (前几行):"
# head -n 3 "${KEY_FILE_PATH}"
echo "--- 正在启动 api-pool 服务 ---"
# 使用 exec 执行 Go 程序,将脚本进程替换为 Go 程序进程
# 将临时文件路径传给 --key-file
# 将从 Secret 读取的密码传给 --password
# 将地址设为 0.0.0.0 以便容器外访问
# 传入其他您指定的参数
exec /app/api-pool \
--key-file "${KEY_FILE_PATH}" \
--target-url "https://api.siliconflow.cn" \
--port "6969" \
--address "0.0.0.0" \
--password "${API_PASSWORD}" \
--max-workers=1000 \
--max-queue=2000
# 注意:--max-workers 和 --max-queue 值较高,请关注 Space 资源使用情况 |