项目名称:alioss-spring-boot-starter 版本:1.0.0 许可证:Apache-2.0 (Apache License Version 2.0) 源码仓库:https://github.com/bytepeak/alioss-spring-boot-starter
阿里云对象存储服务(OSS)Spring Boot Starter,提供简洁易用的API用于上传、下载和管理OSS文件。
零配置快速集成:基于 Spring Boot 自动配置机制 完整的 OSS 功能支持:支持预签名 URL 文件上传、预签名 URL 文件下载、流式上传等 注解式操作:支持通过注解声明式使用 OSS 服务 配置灵活:支持 yml/properties 多种配置方式
<dependency>
<groupId>io.github.stockrooms</groupId>
<artifactId>oss-aliyun-spring-boot-starter</artifactId>
<version>1.0.1</version>
</dependency>(1) 在启动类上添加包扫描
@ComponentScan(basePackages = {"io.github.bytepeak"})
public class OssUtilsApplication {
// ....
}(2)在 application.yml 或 application.properties 中添加阿里云 OSS 配置:
aliyun.oss.region=cn-shanghai
aliyun.oss.accessKeyId=your access key
aliyun.oss.secretAccessKey=your secret access key
aliyun.oss.endpoint=http://oss-cn-shanghai.aliyuncs.com
aliyun.oss.bucketName=your default bucket name(3). 基本使用 注入Helper
@Autowired
private AliOSSHelper ossHelper;预签名(上传/下载)URL生成
String uploadPreSignedURL = aliOSSHelper.generateDownloadURLString(bucketName,objectName,3600L);
String uploadPreSignedURL = aliOSSHelper.generateUploadURLString(bucketName,objectName,3600L);- 批量下载
- 流式上传
- 大文件流式下载
- 回调通知
完整配置项 yaml Copy Code aliyun: oss:
endpoint: oss-cn-hangzhou.aliyuncs.com # OSS 访问域名
access-key-id:
cname: false # 是否使用自定义域名 domain: your-cdn.domain.com # 自定义访问域名 internal: false # 是否使用内网访问
max-connections: 50 # 最大连接数 connection-request-timeout: -1 # 连接请求超时(毫秒) connect-timeout: 5000 # 连接超时(毫秒) socket-timeout: 50000 # Socket超时(毫秒) idle-connection-time: 60000 # 空闲连接时间(毫秒) max-error-retry: 3 # 最大重试次数
security-token: '' # 安全令牌(STS) proxy-host: '' # 代理主机 proxy-port: -1 # 代理端口
- 环境配置建议 开发环境:
使用本地存储模拟 OSS 功能 配置较低的连接池大小 生产环境:
使用环境变量保护敏感信息 配置合适的连接池大小和超时时间 启用日志监控 2. 安全性建议 java Copy Code // 使用 STS 临时凭证访问(推荐用于生产环境) @Configuration public class OssSecurityConfig {
@Value("${aliyun.oss.sts.role-arn}") private String roleArn;
@Bean public OSS ossClient() { // 获取 STS 临时凭证 // ... STS 认证逻辑
return new OSSClientBuilder().build(endpoint, credentials);
}
}
3. 性能优化
yaml 4. # 生产环境优化配置示例 aliyun: oss: max-connections: 100 connection-request-timeout: 1000 connect-timeout: 3000 socket-timeout: 10000 idle-connection-time: 30000 max-error-retry: 2
Q1: 如何解决连接超时问题?
检查网络连通性 适当增大超时时间配置 确认 endpoint 配置正确
Q2: 如何实现文件访问权限控制?
使用 STS 临时凭证 设置 Bucket 权限策略 使用预签名 URL 实现临时授权 Q3: 如何处理大文件上传?
使用分片上传功能,设置合适的分片大小:
本项目基于 Apache License 2.0 开源协议发布。
重要条款摘要:
允许商业使用、修改、分发 必须保留原始许可证和版权声明 不提供任何担保 专利授权包含在许可证中 完整许可证内容请查看项目中的 LICENSE 文件。
整体架构使用依赖注入和门面模式,将工具类和管理器组合起来,使得Helper类变得非常简洁,提供完整的服务。
src/main/
├── java/
│ └── com/github/bytepeak/
│ └── config/ # 配置类
│ ├── entity/ # 实体
│ ├── exception/ # 异常
│ └── helper/ # 门面
│ └── AliOSSHelper.java # Helper 门面核心类
│ ├── bucket # Bucket 常用方法
│ ├── download # 常用下载方法
│ ├── presigned # 预签名上传/下载 URL 生成
│ ├── upload # 简单文件上传方法
│ └── utils # 工具方法
└── resources/
└── META-INF/spring.factories # Spring Boot 自动配置声明
Fork 本项目 创建功能分支 (git checkout -b feature/AmazingFeature) 提交更改 (git commit -m 'Add some AmazingFeature') 推送到分支 (git push origin feature/AmazingFeature) 提交 Pull Request
项目主页:https://github.com/bytepeak/alioss 问题反馈:请提交到项目的 Issues 页面 版本更新:关注项目的 Releases 页面
v1.0.0:初始版本发布 温馨提示:使用前请确保您已拥有阿里云 OSS 服务权限,并正确配置相关密钥信息。
本项目持续维护中,欢迎 Star 和 Fork!