240 lines
7.4 KiB
Bash
Executable File
240 lines
7.4 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
# OSS环境变量快速设置脚本
|
||
# 用于设置阿里云OSS所需的环境变量
|
||
|
||
echo "🔧 OSS环境变量设置工具"
|
||
echo "=================================="
|
||
|
||
# 检测操作系统
|
||
OS_TYPE=$(uname -s)
|
||
SHELL_TYPE=$(basename "$SHELL")
|
||
|
||
echo "检测到操作系统: $OS_TYPE"
|
||
echo "检测到Shell: $SHELL_TYPE"
|
||
echo ""
|
||
|
||
# 获取当前配置文件中的值(仅用于显示)
|
||
CURRENT_KEY_ID="LTAI5t982gXi7A72gAa9yugE"
|
||
CURRENT_KEY_SECRET="Mi9ZsSWLGkvFoMiLNiZ71hHFzVso30"
|
||
|
||
echo "📋 配置文件中的当前值:"
|
||
echo "OSS_ACCESS_KEY_ID: $CURRENT_KEY_ID"
|
||
echo "OSS_ACCESS_KEY_SECRET: ${CURRENT_KEY_SECRET:0:8}..."
|
||
echo ""
|
||
|
||
# 选择设置方式
|
||
echo "请选择设置方式:"
|
||
echo "1. 临时设置(当前终端会话有效)"
|
||
echo "2. 永久设置(添加到Shell配置文件)"
|
||
echo "3. 创建启动脚本"
|
||
echo "4. 创建.env文件"
|
||
echo "5. 显示手动设置命令"
|
||
echo ""
|
||
|
||
read -p "请输入选项 (1-5): " choice
|
||
|
||
case $choice in
|
||
1)
|
||
echo ""
|
||
echo "🔧 临时设置环境变量..."
|
||
export OSS_ACCESS_KEY_ID="$CURRENT_KEY_ID"
|
||
export OSS_ACCESS_KEY_SECRET="$CURRENT_KEY_SECRET"
|
||
|
||
echo "✅ 环境变量已设置(当前终端会话有效)"
|
||
echo ""
|
||
echo "验证设置:"
|
||
echo "OSS_ACCESS_KEY_ID: $OSS_ACCESS_KEY_ID"
|
||
echo "OSS_ACCESS_KEY_SECRET: ${OSS_ACCESS_KEY_SECRET:0:8}..."
|
||
echo ""
|
||
echo "⚠️ 注意:这些变量只在当前终端会话中有效"
|
||
echo " 关闭终端后需要重新设置"
|
||
;;
|
||
|
||
2)
|
||
echo ""
|
||
echo "🔧 永久设置环境变量..."
|
||
|
||
# 根据Shell类型选择配置文件
|
||
if [[ "$SHELL_TYPE" == "zsh" ]]; then
|
||
CONFIG_FILE="$HOME/.zshrc"
|
||
elif [[ "$SHELL_TYPE" == "bash" ]]; then
|
||
CONFIG_FILE="$HOME/.bashrc"
|
||
else
|
||
CONFIG_FILE="$HOME/.profile"
|
||
fi
|
||
|
||
echo "将添加到配置文件: $CONFIG_FILE"
|
||
|
||
# 检查是否已经存在
|
||
if grep -q "OSS_ACCESS_KEY_ID" "$CONFIG_FILE"; then
|
||
echo "⚠️ 配置文件中已存在OSS_ACCESS_KEY_ID,是否覆盖? (y/N)"
|
||
read -p "" overwrite
|
||
if [[ "$overwrite" != "y" && "$overwrite" != "Y" ]]; then
|
||
echo "取消设置"
|
||
exit 0
|
||
fi
|
||
# 移除现有配置
|
||
sed -i.bak '/OSS_ACCESS_KEY_ID/d' "$CONFIG_FILE"
|
||
sed -i.bak '/OSS_ACCESS_KEY_SECRET/d' "$CONFIG_FILE"
|
||
fi
|
||
|
||
# 添加新配置
|
||
echo "" >> "$CONFIG_FILE"
|
||
echo "# OSS环境变量 - 由setup-env.sh添加" >> "$CONFIG_FILE"
|
||
echo "export OSS_ACCESS_KEY_ID=\"$CURRENT_KEY_ID\"" >> "$CONFIG_FILE"
|
||
echo "export OSS_ACCESS_KEY_SECRET=\"$CURRENT_KEY_SECRET\"" >> "$CONFIG_FILE"
|
||
|
||
echo "✅ 环境变量已添加到 $CONFIG_FILE"
|
||
echo ""
|
||
echo "请执行以下命令使配置生效:"
|
||
echo "source $CONFIG_FILE"
|
||
echo ""
|
||
echo "或者重新打开终端"
|
||
;;
|
||
|
||
3)
|
||
echo ""
|
||
echo "🔧 创建启动脚本..."
|
||
|
||
SCRIPT_FILE="start-app-with-oss.sh"
|
||
|
||
cat > "$SCRIPT_FILE" << 'EOF'
|
||
#!/bin/bash
|
||
|
||
# 应用程序启动脚本(包含OSS环境变量)
|
||
# 自动生成于 $(date)
|
||
|
||
echo "🚀 启动应用程序(OSS模式)..."
|
||
echo "=================================="
|
||
|
||
# 设置OSS环境变量
|
||
export OSS_ACCESS_KEY_ID="LTAI5t982gXi7A72gAa9yugE"
|
||
export OSS_ACCESS_KEY_SECRET="Mi9ZsSWLGkvFoMiLNiZ71hHFzVso30"
|
||
|
||
echo "✅ OSS环境变量已设置"
|
||
echo "OSS_ACCESS_KEY_ID: $OSS_ACCESS_KEY_ID"
|
||
echo "OSS_ACCESS_KEY_SECRET: ${OSS_ACCESS_KEY_SECRET:0:8}..."
|
||
echo ""
|
||
|
||
# 切换到项目目录
|
||
PROJECT_DIR="/Users/leocoder/leocoder/develop/templates/coder-common-thin/coder-common-thin-backend"
|
||
if [ -d "$PROJECT_DIR" ]; then
|
||
cd "$PROJECT_DIR"
|
||
echo "📁 切换到项目目录: $PROJECT_DIR"
|
||
else
|
||
echo "❌ 项目目录不存在: $PROJECT_DIR"
|
||
echo "请修改脚本中的PROJECT_DIR变量"
|
||
exit 1
|
||
fi
|
||
|
||
# 检查JAR文件是否存在
|
||
JAR_FILE="coder-common-thin-web/target/coder-common-thin-web-1.0.0.jar"
|
||
if [ -f "$JAR_FILE" ]; then
|
||
echo "📦 找到JAR文件: $JAR_FILE"
|
||
else
|
||
echo "❌ JAR文件不存在: $JAR_FILE"
|
||
echo "请先编译项目: mvn clean package -DskipTests"
|
||
exit 1
|
||
fi
|
||
|
||
# 启动应用程序
|
||
echo ""
|
||
echo "🚀 启动Spring Boot应用程序..."
|
||
echo "访问地址: http://localhost:18099"
|
||
echo "API文档: http://localhost:18099/swagger-ui.html"
|
||
echo ""
|
||
echo "按 Ctrl+C 停止应用程序"
|
||
echo ""
|
||
|
||
java -jar "$JAR_FILE"
|
||
EOF
|
||
|
||
chmod +x "$SCRIPT_FILE"
|
||
|
||
echo "✅ 启动脚本已创建: $SCRIPT_FILE"
|
||
echo ""
|
||
echo "使用方法:"
|
||
echo "./$SCRIPT_FILE"
|
||
;;
|
||
|
||
4)
|
||
echo ""
|
||
echo "🔧 创建.env文件..."
|
||
|
||
ENV_FILE=".env"
|
||
|
||
cat > "$ENV_FILE" << EOF
|
||
# OSS环境变量配置
|
||
# 创建时间: $(date)
|
||
# 注意: 此文件包含敏感信息,不要提交到版本控制
|
||
|
||
OSS_ACCESS_KEY_ID=$CURRENT_KEY_ID
|
||
OSS_ACCESS_KEY_SECRET=$CURRENT_KEY_SECRET
|
||
EOF
|
||
|
||
echo "✅ .env文件已创建: $ENV_FILE"
|
||
echo ""
|
||
echo "使用方法:"
|
||
echo "1. 使用dotenv工具: dotenv java -jar app.jar"
|
||
echo "2. 手动加载: source .env && java -jar app.jar"
|
||
echo "3. 在IDE中配置Environment Variables"
|
||
echo ""
|
||
echo "⚠️ 重要提醒:"
|
||
echo "• 将.env添加到.gitignore文件中"
|
||
echo "• 不要将.env文件提交到版本控制"
|
||
|
||
# 检查并添加到.gitignore
|
||
if [ -f ".gitignore" ]; then
|
||
if ! grep -q "\.env" .gitignore; then
|
||
echo ".env" >> .gitignore
|
||
echo "✅ .env已添加到.gitignore"
|
||
fi
|
||
else
|
||
echo ".env" > .gitignore
|
||
echo "✅ 已创建.gitignore并添加.env"
|
||
fi
|
||
;;
|
||
|
||
5)
|
||
echo ""
|
||
echo "📋 手动设置命令:"
|
||
echo "=================================="
|
||
echo ""
|
||
echo "🐧 Linux/macOS (Bash):"
|
||
echo "export OSS_ACCESS_KEY_ID=\"$CURRENT_KEY_ID\""
|
||
echo "export OSS_ACCESS_KEY_SECRET=\"$CURRENT_KEY_SECRET\""
|
||
echo ""
|
||
echo "🐧 Linux/macOS (Zsh):"
|
||
echo "export OSS_ACCESS_KEY_ID=\"$CURRENT_KEY_ID\""
|
||
echo "export OSS_ACCESS_KEY_SECRET=\"$CURRENT_KEY_SECRET\""
|
||
echo ""
|
||
echo "🪟 Windows (CMD):"
|
||
echo "set OSS_ACCESS_KEY_ID=$CURRENT_KEY_ID"
|
||
echo "set OSS_ACCESS_KEY_SECRET=$CURRENT_KEY_SECRET"
|
||
echo ""
|
||
echo "🪟 Windows (PowerShell):"
|
||
echo "\$env:OSS_ACCESS_KEY_ID=\"$CURRENT_KEY_ID\""
|
||
echo "\$env:OSS_ACCESS_KEY_SECRET=\"$CURRENT_KEY_SECRET\""
|
||
echo ""
|
||
echo "🐳 Docker:"
|
||
echo "docker run -e OSS_ACCESS_KEY_ID=\"$CURRENT_KEY_ID\" -e OSS_ACCESS_KEY_SECRET=\"$CURRENT_KEY_SECRET\" your-app"
|
||
echo ""
|
||
echo "☕ Java启动命令:"
|
||
echo "OSS_ACCESS_KEY_ID=\"$CURRENT_KEY_ID\" OSS_ACCESS_KEY_SECRET=\"$CURRENT_KEY_SECRET\" java -jar app.jar"
|
||
;;
|
||
|
||
*)
|
||
echo "❌ 无效选项,请选择1-5"
|
||
exit 1
|
||
;;
|
||
esac
|
||
|
||
echo ""
|
||
echo "🧪 验证环境变量设置:"
|
||
echo "--------------------------------"
|
||
echo "echo \$OSS_ACCESS_KEY_ID"
|
||
echo "echo \$OSS_ACCESS_KEY_SECRET"
|
||
echo ""
|
||
echo "📖 详细文档: doc/oss/环境变量设置指南.md"
|
||
echo "🚀 测试脚本: doc/oss/修复后验证测试.sh" |