91 lines
2.5 KiB
Markdown
91 lines
2.5 KiB
Markdown
|
|
# 图片上传远程模式配置
|
|||
|
|
|
|||
|
|
## 问题描述
|
|||
|
|
|
|||
|
|
用户在本地开发环境(localhost:8089)上传图片时,返回的图片URL是错误的:
|
|||
|
|
- 错误URL: `http://localhost:8080/uploads/...`
|
|||
|
|
- 应该是: `https://px.ddn-ai.cloud/uploads/...`
|
|||
|
|
|
|||
|
|
## 原因分析
|
|||
|
|
|
|||
|
|
配置文件 `application.yml` 中的上传模式设置为 `local`,导致:
|
|||
|
|
1. 文件保存到本地 `C:/peidu-uploads/`
|
|||
|
|
2. 返回的URL是本地地址 `http://localhost:8089/uploads/...`
|
|||
|
|
|
|||
|
|
但用户需求是:
|
|||
|
|
- 本地开发环境上传到**远程服务器**
|
|||
|
|
- 返回远程服务器的URL
|
|||
|
|
|
|||
|
|
## 解决方案
|
|||
|
|
|
|||
|
|
### 1. 修改 application.yml 配置
|
|||
|
|
|
|||
|
|
```yaml
|
|||
|
|
file:
|
|||
|
|
upload:
|
|||
|
|
# 上传模式改为 remote
|
|||
|
|
mode: remote
|
|||
|
|
# 远程上传接口地址
|
|||
|
|
remote:
|
|||
|
|
url: https://px.ddn-ai.cloud/api/file/upload/direct
|
|||
|
|
timeout: 30
|
|||
|
|
# 访问URL前缀改为远程地址
|
|||
|
|
url-prefix: https://px.ddn-ai.cloud/uploads/
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. 工作流程
|
|||
|
|
|
|||
|
|
**远程上传模式流程:**
|
|||
|
|
```
|
|||
|
|
前端 → 本地后端(8089) → 远程服务器(px.ddn-ai.cloud)
|
|||
|
|
↓
|
|||
|
|
通过HTTP POST上传文件到远程
|
|||
|
|
↓
|
|||
|
|
远程服务器保存文件并返回URL
|
|||
|
|
↓
|
|||
|
|
本地后端返回远程URL给前端
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3. 远程服务器要求
|
|||
|
|
|
|||
|
|
远程服务器必须部署并启用 `/api/file/upload/direct` 接口:
|
|||
|
|
- 接收文件上传
|
|||
|
|
- 保存到 `/www/wwwroot/px.ddn-ai.cloud/Image/`
|
|||
|
|
- 返回可访问的URL: `https://px.ddn-ai.cloud/uploads/文件名`
|
|||
|
|
|
|||
|
|
### 4. 部署步骤
|
|||
|
|
|
|||
|
|
1. **重新编译后端**
|
|||
|
|
```bash
|
|||
|
|
cd peidu/backend
|
|||
|
|
mvn clean package -DskipTests
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
2. **重启本地后端服务**
|
|||
|
|
- 停止当前运行的后端
|
|||
|
|
- 重新启动(会自动加载新配置)
|
|||
|
|
|
|||
|
|
3. **测试上传**
|
|||
|
|
- 在管理后台上传图片
|
|||
|
|
- 检查返回的URL是否为 `https://px.ddn-ai.cloud/uploads/...`
|
|||
|
|
|
|||
|
|
## 注意事项
|
|||
|
|
|
|||
|
|
1. **远程服务器必须可访问**:确保 `https://px.ddn-ai.cloud` 可以正常访问
|
|||
|
|
2. **远程接口必须部署**:`/api/file/upload/direct` 接口必须在远程服务器上运行
|
|||
|
|
3. **网络连接**:本地环境需要能够访问远程服务器
|
|||
|
|
4. **超时设置**:如果网络较慢,可以增加 `timeout` 值
|
|||
|
|
|
|||
|
|
## 配置对比
|
|||
|
|
|
|||
|
|
| 配置项 | 本地模式 | 远程模式 |
|
|||
|
|
|--------|---------|---------|
|
|||
|
|
| mode | local | remote |
|
|||
|
|
| 文件保存位置 | C:/peidu-uploads/ | 远程服务器 |
|
|||
|
|
| url-prefix | http://localhost:8089/uploads/ | https://px.ddn-ai.cloud/uploads/ |
|
|||
|
|
| 适用场景 | 本地测试 | 开发环境连接生产服务器 |
|
|||
|
|
|
|||
|
|
## 日期
|
|||
|
|
|
|||
|
|
2026-01-26
|