qiangdanxitong/S3部署说明.md

5.1 KiB
Raw Permalink Blame History

S3文件存储系统 - 部署说明

📋 部署步骤

第一步:上传文件到服务器

在本地Mac上执行以下命令,将所有新文件上传到服务器:

# 设置变量
SERVER="root@192.168.150.22"
BACKEND_DIR="/root/designhub-backend"  # 请根据实际情况修改

# 1. 上传实体类
scp backend/src/main/java/com/designhub/entity/S3Config.java $SERVER:$BACKEND_DIR/src/main/java/com/designhub/entity/
scp backend/src/main/java/com/designhub/entity/FileUpload.java $SERVER:$BACKEND_DIR/src/main/java/com/designhub/entity/

# 2. 上传Mapper
scp backend/src/main/java/com/designhub/mapper/S3ConfigMapper.java $SERVER:$BACKEND_DIR/src/main/java/com/designhub/mapper/
scp backend/src/main/java/com/designhub/mapper/FileUploadMapper.java $SERVER:$BACKEND_DIR/src/main/java/com/designhub/mapper/

# 3. 上传Service
scp backend/src/main/java/com/designhub/service/S3Service.java $SERVER:$BACKEND_DIR/src/main/java/com/designhub/service/
scp backend/src/main/java/com/designhub/service/S3ConfigService.java $SERVER:$BACKEND_DIR/src/main/java/com/designhub/service/

# 4. 上传Controller
scp backend/src/main/java/com/designhub/controller/S3ConfigController.java $SERVER:$BACKEND_DIR/src/main/java/com/designhub/controller/
scp backend/src/main/java/com/designhub/controller/FileUploadController.java $SERVER:$BACKEND_DIR/src/main/java/com/designhub/controller/

# 5. 上传pom.xml(已包含AWS SDK依赖)
scp backend/pom.xml $SERVER:$BACKEND_DIR/

第二步:在服务器上执行数据库脚本

# SSH登录到服务器
ssh root@192.168.150.22

# 执行数据库脚本
mysql -uroot -p'Abc123456' designhub < /path/to/create_s3_config.sql

# 或者直接执行SQL(如果文件已上传)
mysql -uroot -p'Abc123456' designhub << EOF
-- 执行 create_s3_config.sql 中的内容
EOF

第三步:编译后端

# 在服务器上
cd /root/designhub-backend  # 根据实际路径修改

# 清理并编译
mvn clean package -DskipTests

第四步:部署和重启

# 1. 备份当前JAR
cp /path/to/designhub-backend.jar /path/to/designhub-backend.jar.backup

# 2. 复制新JAR(根据实际路径)
cp target/designhub-backend-*.jar /path/to/designhub-backend.jar

# 3. 重启服务
systemctl restart designhub-backend

# 4. 检查状态
systemctl status designhub-backend

# 5. 查看日志
journalctl -u designhub-backend -f

🔍 验证部署

1. 检查数据库表

-- 检查S3配置表
SELECT * FROM sys_s3_config;

-- 检查文件上传表
SHOW CREATE TABLE sys_file_upload;

2. 测试API

# 获取激活的S3配置(需要token)
curl -X GET http://localhost:8080/api/s3/config/active \
  -H "Authorization: Bearer YOUR_TOKEN"

# 上传文件测试(需要token)
curl -X POST http://localhost:8080/api/file/upload \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -F "files=@test.pdf" \
  -F "relatedType=task"

📝 文件清单

需要上传的文件:

  1. 实体类 (Entity)

    • S3Config.java
    • FileUpload.java
  2. Mapper接口

    • S3ConfigMapper.java
    • FileUploadMapper.java
  3. 服务类 (Service)

    • S3Service.java
    • S3ConfigService.java
  4. 控制器 (Controller)

    • S3ConfigController.java
    • FileUploadController.java
  5. 配置文件

    • pom.xml (已添加AWS SDK依赖)
  6. 数据库脚本

    • database/create_s3_config.sql

⚠️ 注意事项

  1. 路径确认:请确认服务器上的后端代码路径,可能需要修改 BACKEND_DIR 变量

  2. 数据库密码:如果数据库密码不是 Abc123456,请修改脚本中的密码

  3. Maven依赖:确保 pom.xml 已包含以下依赖:

    <dependency>
        <groupId>software.amazon.awssdk</groupId>
        <artifactId>s3</artifactId>
        <version>2.20.26</version>
    </dependency>
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.11.0</version>
    </dependency>
    
  4. JwtUtil注入:FileUploadController 需要注入 JwtUtil,确保 JwtUtil 是 @Component

  5. S3配置:部署后需要在数据库中激活S3配置,默认配置已插入但需要确认


🐛 常见问题

问题1:编译失败 - 找不到AWS SDK类

解决:检查 pom.xml 是否包含AWS SDK依赖,然后执行 mvn clean install

问题2:运行时错误 - S3配置未激活

解决:检查数据库中的 sys_s3_config 表,确保有一条 is_active=1 的记录

问题3:文件上传失败 - 连接S3超时

解决:

  • 检查S3服务端点是否可访问
  • 检查AccessKey和SecretKey是否正确
  • 检查网络连接和防火墙设置

✅ 部署完成检查清单

  • 所有Java文件已上传到服务器
  • pom.xml 已更新并包含AWS SDK依赖
  • 数据库脚本已执行,表已创建
  • 后端编译成功,无错误
  • JAR文件已部署到正确位置
  • 服务已重启
  • 服务状态正常(systemctl status)
  • 日志无错误信息
  • API测试通过

部署完成后,请告诉我,我将继续完成前端的S3配置管理界面!