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 已處理完畢!" |