Spaces:
Sleeping
Sleeping
# 1. 讀取 local_config.json | |
CONFIG_FILE="local_config.json" | |
PREFIX="vaitor2" | |
# 不使用 TMP_DIR,直接在專案根目錄產生暫存檔 | |
echo "開始處理 secrets 上傳..." | |
# 2. 需要處理的 key | |
KEYS=( | |
PASSWORD | |
OPEN_AI_KEY | |
OPEN_AI_ASSISTANT_ID_GPT4_BOT1 | |
OPEN_AI_ASSISTANT_ID_GPT3_BOT1 | |
OPEN_AI_MODERATION_BOT1 | |
GROQ_API_KEY | |
JUTOR_CHAT_KEY | |
PERPLEXITY_API_KEY | |
GOOGLE_APPLICATION_CREDENTIALS_JSON | |
PROXY_USERNAME | |
PROXY_PASSWORD | |
) | |
# 3. 逐一處理每個 key | |
for KEY in "${KEYS[@]}"; do | |
echo "\n==== 處理 $KEY ====" | |
FILENAME="${KEY}.txt" | |
VALUE=$(jq -c --raw-output ".${KEY}" "$CONFIG_FILE") | |
# 如果是 null 就跳過 | |
if [[ "$VALUE" == "null" ]]; then | |
echo "Skip $KEY (null)" | |
continue | |
fi | |
# 如果是物件(GOOGLE_APPLICATION_CREDENTIALS_JSON),直接存成 JSON | |
if [[ "$KEY" == "GOOGLE_APPLICATION_CREDENTIALS_JSON" ]]; then | |
echo "$VALUE" > "$FILENAME" | |
echo "已將 $KEY 內容存成 JSON 檔 $FILENAME" | |
else | |
echo -n "$VALUE" > "$FILENAME" | |
echo "已將 $KEY 內容存成文字檔 $FILENAME" | |
fi | |
set -x | |
# 建立 secret(如果已存在會失敗,請自行決定是否要先刪除舊的) | |
echo "嘗試建立 secret: ${PREFIX}-${KEY}..." | |
gcloud secrets create "${PREFIX}-${KEY}" --data-file="$FILENAME" 2>/dev/null | |
# 如果已存在就更新 | |
if [[ $? -ne 0 ]]; then | |
echo "Secret ${PREFIX}-${KEY} 已存在,改為 add new version..." | |
gcloud secrets versions add "${PREFIX}-${KEY}" --data-file="$FILENAME" | |
echo "已為 ${PREFIX}-${KEY} 新增版本" | |
else | |
echo "Secret ${PREFIX}-${KEY} 已建立" | |
fi | |
set +x | |
# 刪除暫存檔 | |
rm "$FILENAME" | |
echo "$FILENAME 已刪除" | |
done | |
echo "\n所有 secrets 已處理完畢!" |