feat(oss): 增加对象存储模块并支持多种存储策略

- 新增对象存储服务模块 `han-note-oss`,集成 Rustfs、阿里云 OSS 及腾讯云 Cos 存储
- 提供统一的 `FileStrategy` 接口及 `FileStrategyFactory` 工厂类,根据存储类型动态选择存储策略
- 实现阿里云 OSS、腾讯云 Cos 和 Rustfs 具体存储逻辑
- 增加文件上传接口 `FileController`,支持接收文件并返回访问路径
- 完成用户密码更新接口,使用`spring.security`对密码进行加密
This commit is contained in:
Hanserwei
2025-10-03 17:52:25 +08:00
parent 5c406b48f9
commit 0d71d8e209
33 changed files with 974 additions and 1 deletions

41
pom.xml
View File

@@ -14,6 +14,7 @@
<module>han-note-auth</module>
<module>hanserwei-framework</module>
<module>han-note-gateway</module>
<module>han-note-oss</module>
</modules>
<properties>
@@ -42,6 +43,12 @@
<hutool.version>5.8.40</hutool.version>
<commons-lang3.version>3.19.0</commons-lang3.version>
<transmittable-thread-local.version>2.14.5</transmittable-thread-local.version>
<aws-sdk.version>2.34.8</aws-sdk.version>
<aliyun-sdk-oss.version>3.17.4</aliyun-sdk-oss.version>
<jaxb-api.version>2.3.1</jaxb-api.version>
<activation.version>1.1.1</activation.version>
<jaxb-runtime.version>2.3.3</jaxb-runtime.version>
<cos-api.version>5.6.227</cos-api.version>
</properties>
<dependencyManagement>
<dependencies>
@@ -161,6 +168,40 @@
<artifactId>transmittable-thread-local</artifactId>
<version>${transmittable-thread-local.version}</version>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>s3</artifactId>
<version>${aws-sdk.version}</version>
</dependency>
<!-- 阿里云 OSS -->
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>${aliyun-sdk-oss.version}</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>${jaxb-api.version}</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>${activation.version}</version>
</dependency>
<!-- no more than 2.3.3-->
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>${jaxb-runtime.version}</version>
</dependency>
<!-- 腾讯云 OSS -->
<dependency>
<groupId>com.qcloud</groupId>
<artifactId>cos_api</artifactId>
<version>${cos-api.version}</version>
</dependency>
</dependencies>
</dependencyManagement>