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

5.2 KiB
Raw Permalink Blame History

本地开发环境远程上传配置指南

问题描述

本地开发环境上传图片到远程服务器后返回的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

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

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. 远程服务器配置(需要修改⚠️

登录远程服务器:

ssh root@px.ddn-ai.cloud

修改配置文件:

找到远程服务器上的配置文件(通常在项目目录下):

  • application.yml
  • application-prod.ymlapplication-dev.yml

修改为:

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

重启远程服务器后端:

# 停止旧进程
ps aux | grep java
kill -9 <进程ID>

# 启动新进程
cd /path/to/backend
nohup java -jar peidu-backend-1.0.0.jar &

3. Nginx配置确认

确保远程服务器的 Nginx 配置正确映射 /uploads/ 路径:

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. 验证远程服务器配置

在远程服务器上运行:

curl -X POST https://px.ddn-ai.cloud/api/file/upload/direct \
  -F "file=@test.jpg"

应该返回:

{
  "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: 如何查看远程服务器的配置?

# 查找配置文件
find / -name "application*.yml" 2>/dev/null

# 查看配置内容
cat /path/to/application.yml | grep -A 10 "file:"

Q3: 修改配置后需要重启吗?

是的,必须重启远程服务器的后端服务才能生效。

Q4: 如何确认配置生效?

查看远程服务器启动日志:

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