如何使用
一、基本使用
- maven 中引入
<dependency>
<groupId>cn.herodotus.oss</groupId>
<artifactId>oss-spring-boot-starter</artifactId>
<version>最新版本</version>
</dependency>
- 配置 yml 参数
herodotus:
oss:
dialect: minio
minio:
endpoint: http://127.0.0.1:9000
access-key: XXXXXXXXX
secret-key: XXXXXXXXX
use-proxy: true
proxy-source-endpoint: http://localhost:3000/api
- 统一错误处理
// 参考代码
public static Result<String> resolveException(Exception ex, String path) {
return GlobalExceptionHandler.resolveException(ex, path);
}
// 或者
@ExceptionHandler({HerodotusException.class, PlatformException.class})
public static Result<String> exception(Exception ex, HttpServletRequest request, HttpServletResponse response) {
······
}
- 交互性错误信息反馈
// 在系统统一错误处,调用以下代码即可返回包含自定义错误码的、更具交互性错误信息。
if (ex instanceof HerodotusException exception) {
Result<String> result = exception.getResult();
result.path(path);
log.error("[Herodotus] |- Global Exception Handler, Error is : {}", result);
return result;
}
二、选择使用
除了 dialect-core
和 oss-specification
模块以外,其它所有模块均可以单独使用。可以根据自身需要,仅选择某个模块进行使用。
1. dialect-sdk-aliyun
包含对 Aliyun 基础 API 封装的 Service 代码, 作为 OSS 统一抽象的实现方式之一,也包含对 Dante Java OSS API 规范的实现代码。可以单独使用,引入 oss-aliyun-spring-boot-starter
可开启自动配置。
目前暂不提供 Aliyun REST API 封装,请根据自身的需要直接申请使用阿里云 REST API 或者使用 Dante OSS 统一 REST API 接口。
2. dialect-sdk-s3
包含对 Amazon S3 基础 API 封装的 Service 代码, 作为 OSS 统一抽象的实现方式之一,也包含对 Dante Java OSS API 规范的实现代码。可以单独使用,引入 oss-s3-spring-boot-starter
可开启自动配置。
目前暂不提供 Amazon S3 REST API 封装,请根据自身的需要直接申请使用 Amazon S3 REST API 或者使用 Dante OSS 统一 REST API 接口。
3. dialect-sdk-minio
包含对 Minio 基础 API 封装的 Service 代码, 作为 OSS 统一抽象的实现方式之一,也包含对 Dante Java OSS API 规范的实现代码。
提供 Minio 标准操作 REST API 封装 rest-sdk-minio
注意:
rest-sdk-minio
中不包含大文件分片上传通用解决方案业务功能以及符合 Dante Java OSS API 规范的通用功能 REST API
使用 oss-minio-spring-boot-starter
可统一开启 Minio Service 和 REST API 自动配置。
4. rest-sdk-minio
提供 Minio 标准操作 REST API 封装。使用 oss-minio-spring-boot-starter
可统一开启 Minio Service 和 REST API 自动配置。
5. rest-sdk-specification
rest-sdk-specification
是通过对 Minio、Aliyun、Amazon S3 现有 API 共性内容进行抽象,提取 Dante Java OSS API 规范定义后,形成的统一操作 REST API。目标是形成类似于 Spring Data Repository 统一形式的 Java OSS API 和 REST API,以期在不修改代码的情况下,以一套 API 就可以支持不同的 OSS 厂商的无缝切换。
6. oss-solution
是对大文件分片等主流对象存储业务解决方案的高度抽象,以及相关管理操作 Dante Java OSS API 规范封装。使用该模块就可以方便的、快捷的集成或自定义自己大文件分片实现。
7. oss-spring-boot-starter
Dante OSS 的所有内容,可直接引入使用。以 OSS 共性抽象为基础,通过 Spring Boot 配置,实现不同 OSS 操作实现的切换。目前以 Minio 作为默认实现,同时提供 Minio 相关完整的 REST API。Aliyun 和 Amazon S3 目前仅包含对其 Java SDK 封装的 Service API,作为不同 OSS 实现的可选项。如要使用其 REST API 的方式,请直接按照对应厂商官网文档操作申请即可,暂不考虑将这一部分融入 Dante OSS。
注意
随着 OSS 共性内容抽象的不断完善,rest-sdk-scenario
中相关的内容,可能会逐步迁移至其它模块中。