- 实现阿里云OSS对象存储服务 - 支持MinIO对象存储服务 - 提供本地存储服务作为降级选择 - 实现存储服务工厂模式统一管理 - 新增OSS配置管理和工具类 - 完善插件化架构支持多种存储方式 - 添加详细的使用文档和配置说明
271 lines
6.3 KiB
Markdown
271 lines
6.3 KiB
Markdown
# 环境变量设置指南
|
||
|
||
## 📋 需要设置的环境变量
|
||
|
||
根据你的配置文件,需要设置以下环境变量:
|
||
|
||
```bash
|
||
OSS_ACCESS_KEY_ID=your_access_key_id
|
||
OSS_ACCESS_KEY_SECRET=your_access_key_secret
|
||
```
|
||
|
||
## 🖥️ 不同操作系统的设置方法
|
||
|
||
### 1. macOS / Linux
|
||
|
||
#### 方法1:临时设置(当前终端会话有效)
|
||
```bash
|
||
export OSS_ACCESS_KEY_ID=LTAI5t982gXi7A72gAa9yugE
|
||
export OSS_ACCESS_KEY_SECRET=Mi9ZsSWLGkvFoMiLNiZ71hHFzVso30
|
||
```
|
||
|
||
#### 方法2:永久设置(添加到配置文件)
|
||
|
||
**对于 Bash 用户:**
|
||
```bash
|
||
# 编辑 ~/.bashrc 或 ~/.bash_profile
|
||
echo 'export OSS_ACCESS_KEY_ID=LTAI5t982gXi7A72gAa9yugE' >> ~/.bashrc
|
||
echo 'export OSS_ACCESS_KEY_SECRET=Mi9ZsSWLGkvFoMiLNiZ71hHFzVso30' >> ~/.bashrc
|
||
|
||
# 重新加载配置
|
||
source ~/.bashrc
|
||
```
|
||
|
||
**对于 Zsh 用户(macOS 默认):**
|
||
```bash
|
||
# 编辑 ~/.zshrc
|
||
echo 'export OSS_ACCESS_KEY_ID=LTAI5t982gXi7A72gAa9yugE' >> ~/.zshrc
|
||
echo 'export OSS_ACCESS_KEY_SECRET=Mi9ZsSWLGkvFoMiLNiZ71hHFzVso30' >> ~/.zshrc
|
||
|
||
# 重新加载配置
|
||
source ~/.zshrc
|
||
```
|
||
|
||
### 2. Windows
|
||
|
||
#### 方法1:命令行临时设置
|
||
|
||
**CMD:**
|
||
```cmd
|
||
set OSS_ACCESS_KEY_ID=LTAI5t982gXi7A72gAa9yugE
|
||
set OSS_ACCESS_KEY_SECRET=Mi9ZsSWLGkvFoMiLNiZ71hHFzVso30
|
||
```
|
||
|
||
**PowerShell:**
|
||
```powershell
|
||
$env:OSS_ACCESS_KEY_ID="LTAI5t982gXi7A72gAa9yugE"
|
||
$env:OSS_ACCESS_KEY_SECRET="Mi9ZsSWLGkvFoMiLNiZ71hHFzVso30"
|
||
```
|
||
|
||
#### 方法2:系统环境变量设置
|
||
|
||
1. 右击"此电脑" → "属性"
|
||
2. 点击"高级系统设置"
|
||
3. 点击"环境变量"
|
||
4. 在"系统变量"中点击"新建"
|
||
5. 变量名:`OSS_ACCESS_KEY_ID`,变量值:`LTAI5t982gXi7A72gAa9yugE`
|
||
6. 重复步骤4-5,设置 `OSS_ACCESS_KEY_SECRET`
|
||
|
||
## 🚀 启动应用程序的方法
|
||
|
||
### 1. 直接在终端启动
|
||
|
||
```bash
|
||
# 设置环境变量
|
||
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. 一行命令启动
|
||
|
||
```bash
|
||
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. 使用启动脚本
|
||
|
||
创建一个启动脚本:
|
||
|
||
```bash
|
||
#!/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
|
||
```
|
||
|
||
给脚本添加执行权限并运行:
|
||
```bash
|
||
chmod +x start-app.sh
|
||
./start-app.sh
|
||
```
|
||
|
||
## 🐳 Docker 环境
|
||
|
||
### 1. docker run 命令
|
||
```bash
|
||
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
|
||
```yaml
|
||
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 文件
|
||
```bash
|
||
# 创建 .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
|
||
|
||
1. 打开 Run Configuration
|
||
2. 选择你的 Spring Boot 应用
|
||
3. 在 "Environment Variables" 中添加:
|
||
- `OSS_ACCESS_KEY_ID=LTAI5t982gXi7A72gAa9yugE`
|
||
- `OSS_ACCESS_KEY_SECRET=Mi9ZsSWLGkvFoMiLNiZ71hHFzVso30`
|
||
|
||
### 2. VS Code
|
||
|
||
在 `.vscode/launch.json` 中配置:
|
||
```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
|
||
|
||
1. 右击项目 → Run As → Run Configurations
|
||
2. 选择你的 Java Application
|
||
3. 在 "Environment" 选项卡中添加变量
|
||
|
||
## 🔐 安全最佳实践
|
||
|
||
### 1. 使用 .env 文件(推荐)
|
||
|
||
创建 `.env` 文件(不要提交到版本控制):
|
||
```bash
|
||
# .env 文件
|
||
OSS_ACCESS_KEY_ID=LTAI5t982gXi7A72gAa9yugE
|
||
OSS_ACCESS_KEY_SECRET=Mi9ZsSWLGkvFoMiLNiZ71hHFzVso30
|
||
```
|
||
|
||
在 `.gitignore` 中添加:
|
||
```
|
||
.env
|
||
```
|
||
|
||
### 2. 使用系统密钥管理
|
||
|
||
**macOS Keychain:**
|
||
```bash
|
||
# 存储到 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:**
|
||
```bash
|
||
# 使用 secret-tool
|
||
secret-tool store --label="OSS Access Key" service oss-access-key LTAI5t982gXi7A72gAa9yugE
|
||
```
|
||
|
||
### 3. 配置文件最佳实践
|
||
|
||
修改 `application-dev.yml`:
|
||
```yaml
|
||
coder:
|
||
oss:
|
||
# 只从环境变量读取,不设置默认值
|
||
access-key-id: ${OSS_ACCESS_KEY_ID}
|
||
access-key-secret: ${OSS_ACCESS_KEY_SECRET}
|
||
```
|
||
|
||
## ✅ 验证环境变量
|
||
|
||
### 1. 检查环境变量是否设置成功
|
||
```bash
|
||
# 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 代码中临时添加日志:
|
||
```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 ? "已设置" : "未设置");
|
||
}
|
||
```
|
||
|
||
## 🚨 注意事项
|
||
|
||
1. **不要在版本控制中提交真实的密钥**
|
||
2. **定期轮换访问密钥**
|
||
3. **使用最小权限原则配置OSS权限**
|
||
4. **在生产环境中使用更安全的密钥管理方案**
|
||
5. **重启应用程序后环境变量才会生效**
|
||
|
||
## 📝 快速设置脚本
|
||
|
||
我已经为你准备了一个快速设置脚本,运行即可:
|
||
|
||
```bash
|
||
# 当前目录下创建 setup-env.sh
|
||
chmod +x setup-env.sh
|
||
./setup-env.sh
|
||
```
|
||
|
||
按照这个指南设置环境变量后,你的OSS功能就可以正常使用了! |