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