5.1 KiB
5.1 KiB
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"
📝 文件清单
需要上传的文件:
-
实体类 (Entity)
S3Config.javaFileUpload.java
-
Mapper接口
S3ConfigMapper.javaFileUploadMapper.java
-
服务类 (Service)
S3Service.javaS3ConfigService.java
-
控制器 (Controller)
S3ConfigController.javaFileUploadController.java
-
配置文件
pom.xml(已添加AWS SDK依赖)
-
数据库脚本
database/create_s3_config.sql
⚠️ 注意事项
-
路径确认:请确认服务器上的后端代码路径,可能需要修改
BACKEND_DIR变量 -
数据库密码:如果数据库密码不是
Abc123456,请修改脚本中的密码 -
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> -
JwtUtil注入:
FileUploadController需要注入JwtUtil,确保JwtUtil是@Component -
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配置管理界面!