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
|