# 图片上传远程模式配置 ## 问题描述 用户在本地开发环境(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