- 实现阿里云OSS对象存储服务 - 支持MinIO对象存储服务 - 提供本地存储服务作为降级选择 - 实现存储服务工厂模式统一管理 - 新增OSS配置管理和工具类 - 完善插件化架构支持多种存储方式 - 添加详细的使用文档和配置说明
6.3 KiB
6.3 KiB
环境变量设置指南
📋 需要设置的环境变量
根据你的配置文件,需要设置以下环境变量:
OSS_ACCESS_KEY_ID=your_access_key_id
OSS_ACCESS_KEY_SECRET=your_access_key_secret
🖥️ 不同操作系统的设置方法
1. macOS / Linux
方法1:临时设置(当前终端会话有效)
export OSS_ACCESS_KEY_ID=LTAI5t982gXi7A72gAa9yugE
export OSS_ACCESS_KEY_SECRET=Mi9ZsSWLGkvFoMiLNiZ71hHFzVso30
方法2:永久设置(添加到配置文件)
对于 Bash 用户:
# 编辑 ~/.bashrc 或 ~/.bash_profile
echo 'export OSS_ACCESS_KEY_ID=LTAI5t982gXi7A72gAa9yugE' >> ~/.bashrc
echo 'export OSS_ACCESS_KEY_SECRET=Mi9ZsSWLGkvFoMiLNiZ71hHFzVso30' >> ~/.bashrc
# 重新加载配置
source ~/.bashrc
对于 Zsh 用户(macOS 默认):
# 编辑 ~/.zshrc
echo 'export OSS_ACCESS_KEY_ID=LTAI5t982gXi7A72gAa9yugE' >> ~/.zshrc
echo 'export OSS_ACCESS_KEY_SECRET=Mi9ZsSWLGkvFoMiLNiZ71hHFzVso30' >> ~/.zshrc
# 重新加载配置
source ~/.zshrc
2. Windows
方法1:命令行临时设置
CMD:
set OSS_ACCESS_KEY_ID=LTAI5t982gXi7A72gAa9yugE
set OSS_ACCESS_KEY_SECRET=Mi9ZsSWLGkvFoMiLNiZ71hHFzVso30
PowerShell:
$env:OSS_ACCESS_KEY_ID="LTAI5t982gXi7A72gAa9yugE"
$env:OSS_ACCESS_KEY_SECRET="Mi9ZsSWLGkvFoMiLNiZ71hHFzVso30"
方法2:系统环境变量设置
- 右击"此电脑" → "属性"
- 点击"高级系统设置"
- 点击"环境变量"
- 在"系统变量"中点击"新建"
- 变量名:
OSS_ACCESS_KEY_ID,变量值:LTAI5t982gXi7A72gAa9yugE - 重复步骤4-5,设置
OSS_ACCESS_KEY_SECRET
🚀 启动应用程序的方法
1. 直接在终端启动
# 设置环境变量
export OSS_ACCESS_KEY_ID=LTAI5t982gXi7A72gAa9yugE
export OSS_ACCESS_KEY_SECRET=Mi9ZsSWLGkvFoMiLNiZ71hHFzVso30
# 启动应用程序
cd /Users/leocoder/leocoder/develop/templates/coder-common-thin/coder-common-thin-backend
java -jar coder-common-thin-web/target/coder-common-thin-web-1.0.0.jar
2. 一行命令启动
OSS_ACCESS_KEY_ID=LTAI5t982gXi7A72gAa9yugE OSS_ACCESS_KEY_SECRET=Mi9ZsSWLGkvFoMiLNiZ71hHFzVso30 java -jar coder-common-thin-web/target/coder-common-thin-web-1.0.0.jar
3. 使用启动脚本
创建一个启动脚本:
#!/bin/bash
# 文件名: start-app.sh
# 设置环境变量
export OSS_ACCESS_KEY_ID=LTAI5t982gXi7A72gAa9yugE
export OSS_ACCESS_KEY_SECRET=Mi9ZsSWLGkvFoMiLNiZ71hHFzVso30
# 切换到项目目录
cd /Users/leocoder/leocoder/develop/templates/coder-common-thin/coder-common-thin-backend
# 启动应用程序
java -jar coder-common-thin-web/target/coder-common-thin-web-1.0.0.jar
给脚本添加执行权限并运行:
chmod +x start-app.sh
./start-app.sh
🐳 Docker 环境
1. docker run 命令
docker run -d \
-e OSS_ACCESS_KEY_ID=LTAI5t982gXi7A72gAa9yugE \
-e OSS_ACCESS_KEY_SECRET=Mi9ZsSWLGkvFoMiLNiZ71hHFzVso30 \
-p 18099:18099 \
your-app-image
2. docker-compose.yml
version: '3.8'
services:
app:
image: your-app-image
ports:
- "18099:18099"
environment:
- OSS_ACCESS_KEY_ID=LTAI5t982gXi7A72gAa9yugE
- OSS_ACCESS_KEY_SECRET=Mi9ZsSWLGkvFoMiLNiZ71hHFzVso30
3. 使用 .env 文件
# 创建 .env 文件
echo "OSS_ACCESS_KEY_ID=LTAI5t982gXi7A72gAa9yugE" > .env
echo "OSS_ACCESS_KEY_SECRET=Mi9ZsSWLGkvFoMiLNiZ71hHFzVso30" >> .env
# docker-compose 会自动读取
docker-compose up -d
🔧 IDE 环境配置
1. IntelliJ IDEA
- 打开 Run Configuration
- 选择你的 Spring Boot 应用
- 在 "Environment Variables" 中添加:
OSS_ACCESS_KEY_ID=LTAI5t982gXi7A72gAa9yugEOSS_ACCESS_KEY_SECRET=Mi9ZsSWLGkvFoMiLNiZ71hHFzVso30
2. VS Code
在 .vscode/launch.json 中配置:
{
"type": "java",
"name": "Spring Boot App",
"request": "launch",
"mainClass": "org.leocoder.thin.web.CoderApplication",
"env": {
"OSS_ACCESS_KEY_ID": "LTAI5t982gXi7A72gAa9yugE",
"OSS_ACCESS_KEY_SECRET": "Mi9ZsSWLGkvFoMiLNiZ71hHFzVso30"
}
}
3. Eclipse
- 右击项目 → Run As → Run Configurations
- 选择你的 Java Application
- 在 "Environment" 选项卡中添加变量
🔐 安全最佳实践
1. 使用 .env 文件(推荐)
创建 .env 文件(不要提交到版本控制):
# .env 文件
OSS_ACCESS_KEY_ID=LTAI5t982gXi7A72gAa9yugE
OSS_ACCESS_KEY_SECRET=Mi9ZsSWLGkvFoMiLNiZ71hHFzVso30
在 .gitignore 中添加:
.env
2. 使用系统密钥管理
macOS Keychain:
# 存储到 Keychain
security add-generic-password -s "oss-access-key" -a "your-app" -w "LTAI5t982gXi7A72gAa9yugE"
# 从 Keychain 读取
OSS_ACCESS_KEY_ID=$(security find-generic-password -s "oss-access-key" -a "your-app" -w)
Linux Secret Service:
# 使用 secret-tool
secret-tool store --label="OSS Access Key" service oss-access-key LTAI5t982gXi7A72gAa9yugE
3. 配置文件最佳实践
修改 application-dev.yml:
coder:
oss:
# 只从环境变量读取,不设置默认值
access-key-id: ${OSS_ACCESS_KEY_ID}
access-key-secret: ${OSS_ACCESS_KEY_SECRET}
✅ 验证环境变量
1. 检查环境变量是否设置成功
# Linux/macOS
echo $OSS_ACCESS_KEY_ID
echo $OSS_ACCESS_KEY_SECRET
# Windows CMD
echo %OSS_ACCESS_KEY_ID%
echo %OSS_ACCESS_KEY_SECRET%
# Windows PowerShell
echo $env:OSS_ACCESS_KEY_ID
echo $env:OSS_ACCESS_KEY_SECRET
2. 在应用程序中验证
在 Java 代码中临时添加日志:
@PostConstruct
public void logOssConfig() {
log.info("OSS_ACCESS_KEY_ID: {}", System.getenv("OSS_ACCESS_KEY_ID"));
log.info("OSS_ACCESS_KEY_SECRET: {}",
System.getenv("OSS_ACCESS_KEY_SECRET") != null ? "已设置" : "未设置");
}
🚨 注意事项
- 不要在版本控制中提交真实的密钥
- 定期轮换访问密钥
- 使用最小权限原则配置OSS权限
- 在生产环境中使用更安全的密钥管理方案
- 重启应用程序后环境变量才会生效
📝 快速设置脚本
我已经为你准备了一个快速设置脚本,运行即可:
# 当前目录下创建 setup-env.sh
chmod +x setup-env.sh
./setup-env.sh
按照这个指南设置环境变量后,你的OSS功能就可以正常使用了!