#!/bin/bash # 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 已處理完畢!"