Skip to content

bytepeak/alioss

Repository files navigation

AliOSS Spring Boot Starter 使用指南

一、项目概述

‌项目名称‌: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 多种配置方式

四、快速开始

1. 添加依赖

   <dependency>
       <groupId>io.github.stockrooms</groupId>
       <artifactId>oss-aliyun-spring-boot-starter</artifactId>
       <version>1.0.1</version>
   </dependency>

2. 快速使用

(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);

五、高级特性

  1. 批量下载
  2. 流式上传
  3. 大文件流式下载
  4. 回调通知

六、配置说明

完整配置项 yaml Copy Code aliyun: oss:

必填配置

endpoint: oss-cn-hangzhou.aliyuncs.com # OSS 访问域名 access-key-id: ${ALIYUN_ACCESS_KEY_ID} # 访问密钥ID access-key-secret: ${ALIYUN_ACCESS_KEY_SECRET} # 访问密钥 bucket-name: your-bucket # 默认存储桶名称

可选配置

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 # 代理端口

七、最佳实践

  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!

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages