peixue-dev/peidu/Archive/一次性文件/[一次性]本地开发环境远程上传配置指南-2026-01-26.md

213 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 本地开发环境远程上传配置指南
## 问题描述
本地开发环境上传图片到远程服务器后返回的URL是 `http://localhost:8089/uploads/...`导致图片无法加载404错误
## 原因分析
**数据流程:**
```
前端(5173) → 本地后端(8089) → 远程服务器(px.ddn-ai.cloud)
保存文件成功
返回URL: localhost:8089 ❌ (错误)
```
**问题根源:**
- 远程服务器的配置文件中 `url-prefix` 设置为 `localhost:8089`
- 远程服务器返回的URL使用的是它自己的配置
- 本地后端直接转发了远程服务器的响应
## 解决方案
### 1. 本地开发环境配置(已完成✅)
**文件:** `peidu/backend/src/main/resources/application.yml`
```yaml
file:
upload:
mode: remote # 使用远程上传模式
remote:
url: https://px.ddn-ai.cloud/api/file/upload/direct
timeout: 30
url-prefix: https://px.ddn-ai.cloud/uploads/
```
**文件:** `peidu/backend/src/main/resources/application-dev.yml`
```yaml
file:
upload:
mode: remote # 使用远程上传模式
local-path: C:/peidu/uploads/
remote:
url: https://px.ddn-ai.cloud/api/file/upload/direct
timeout: 30
url-prefix: https://px.ddn-ai.cloud/uploads/
allowed-types: jpg,jpeg,png,gif,bmp,webp,pdf,doc,docx,xls,xlsx
max-size: 10
```
### 2. 远程服务器配置(需要修改⚠️)
**登录远程服务器:**
```bash
ssh root@px.ddn-ai.cloud
```
**修改配置文件:**
找到远程服务器上的配置文件(通常在项目目录下):
- `application.yml`
- `application-prod.yml``application-dev.yml`
**修改为:**
```yaml
file:
upload:
mode: local # 远程服务器使用本地保存模式
local-path: /www/wwwroot/px.ddn-ai.cloud/Image/
url-prefix: https://px.ddn-ai.cloud/uploads/ # ⚠️ 关键:必须是远程地址
allowed-types: jpg,jpeg,png,gif,bmp,webp,pdf,doc,docx,xls,xlsx
max-size: 10
```
**重启远程服务器后端:**
```bash
# 停止旧进程
ps aux | grep java
kill -9 <进程ID>
# 启动新进程
cd /path/to/backend
nohup java -jar peidu-backend-1.0.0.jar &
```
### 3. Nginx配置确认
确保远程服务器的 Nginx 配置正确映射 `/uploads/` 路径:
```nginx
location /uploads/ {
alias /www/wwwroot/px.ddn-ai.cloud/Image/;
autoindex off;
}
```
## 配置对比表
| 环境 | mode | local-path | url-prefix | 说明 |
|------|------|-----------|-----------|------|
| 本地开发 | remote | C:/peidu/uploads/ | https://px.ddn-ai.cloud/uploads/ | 上传到远程 |
| 远程服务器 | local | /www/wwwroot/px.ddn-ai.cloud/Image/ | https://px.ddn-ai.cloud/uploads/ | 本地保存 |
## 验证步骤
### 1. 验证远程服务器配置
在远程服务器上运行:
```bash
curl -X POST https://px.ddn-ai.cloud/api/file/upload/direct \
-F "file=@test.jpg"
```
应该返回:
```json
{
"code": 200,
"message": "上传成功",
"data": {
"fileName": "20260126_xxx.jpg",
"fileUrl": "https://px.ddn-ai.cloud/uploads/20260126_xxx.jpg",
"fileSize": "12345",
"fileType": "jpg"
}
}
```
**关键检查:** `fileUrl` 必须是 `https://px.ddn-ai.cloud/uploads/...`
### 2. 验证本地上传
在本地管理后台上传图片,检查:
1. 上传成功
2. 返回的URL是 `https://px.ddn-ai.cloud/uploads/...`
3. 图片可以正常显示
### 3. 验证图片访问
直接在浏览器访问:
```
https://px.ddn-ai.cloud/uploads/20260126_xxx.jpg
```
应该能正常显示图片。
## 常见问题
### Q1: 远程服务器配置文件在哪里?
通常在以下位置之一:
- `/www/wwwroot/px.ddn-ai.cloud/backend/application.yml`
- `/opt/peidu/application.yml`
- JAR包同目录下的 `application.yml`
### Q2: 如何查看远程服务器的配置?
```bash
# 查找配置文件
find / -name "application*.yml" 2>/dev/null
# 查看配置内容
cat /path/to/application.yml | grep -A 10 "file:"
```
### Q3: 修改配置后需要重启吗?
是的,必须重启远程服务器的后端服务才能生效。
### Q4: 如何确认配置生效?
查看远程服务器启动日志:
```bash
tail -f nohup.out
```
应该看到:
```
========================================
📁 文件上传配置初始化
上传模式: local
本地保存路径: /www/wwwroot/px.ddn-ai.cloud/Image/
✅ 本地保存模式
访问URL前缀: https://px.ddn-ai.cloud/uploads/
========================================
```
## 总结
**核心要点:**
1. 本地开发环境:`mode=remote`,上传到远程服务器
2. 远程服务器:`mode=local`,保存到本地磁盘
3. 远程服务器的 `url-prefix` 必须是 `https://px.ddn-ai.cloud/uploads/`
4. 修改远程配置后必须重启服务
**修改完成后的效果:**
```
前端 → 本地后端(remote模式) → 远程服务器(local模式)
保存到 /www/wwwroot/.../Image/
返回 https://px.ddn-ai.cloud/uploads/xxx.jpg ✅
前端可以正常加载图片
```
## 日期
2026-01-26