我开源了一款阿里云OSS的spring-boot-starter

在上一篇文章中我们介绍了如何使用SpringBoot集成阿里云oss: 什么!没有Starter的阿里云OSS也能集成到SpringBoot? 但是这个方式还是需要自己去写配置类去配置很多的东西,那么我在想,为什么不自己写一个阿里云OSS的spring-boot-starter呢,所以aliyun-oss-spring-boot-starter的1.0.0版本出现了,同时我也将jar包发布到了maven的中央仓库供大家使用。

maven仓库主页

请使用1.0.0版本

第一步,新建一个SpringBoot项目

SpringBoot入门:如何新建SpringBoot项目(保姆级教程)

第二步,在pom文件里面引入jar包

java 复制代码
<!-- https://mvnrepository.com/artifact/io.gitee.wangfugui-ma/aliyun-oss-spring-boot-starter -->
<dependency>
    <groupId>io.gitee.wangfugui-ma</groupId>
    <artifactId>aliyun-oss-spring-boot-starter</artifactId>
    <version>1.0.0</version>
</dependency>

第三步,配置你的阿里云oss信息

在yml或者properties文件中配置如下信息

yaml 复制代码
aliyunoss:
  bucketName: masiyimarkdown
  endpoint: https://oss-cn-guangzhou.aliyuncs.com
  accessKeyId: LTAI5tRbBzEmyo9sde3g9qqc
  accessKeySecret: aDcdwcDeUef1602V42TsdtfAJ42Ma9

aliyunoss.bucketName

bucket名称,相当于一个整体的文件夹的名称。目前1.0.0 版本只支持项目中使用一个bucket,后续可能会优化为多个bucket。

aliyunoss.endpoint

Endpoint(地域节点)根据你创建的bucket的所在地址来决定endpoint是什么,例如我上面的地域是广州则是:https://oss-cn-**guangzhou**.aliyuncs.com

accessKeyId,accessKeySecret

相当于你oss的账号密码,配置之后只会出现一次,一定要记住


第四步,使用AliyunTemplate

less 复制代码
    @Autowired
    AliyunTemplate aliyunTemplate;

在你的项目中直接使用Autowired注解注入AliyunTemplate即可使用

第五步,验证是否可以使用

我们编写一个测试方法往oss里面上传一个txt文件试试

发现成功在oss里面添加文件:

所以,这次相比我们比上次的方式优雅多了,只需要引入aliyun-oss-spring-boot-starter之后再配置阿里云oss的信息,这样就可以使用了。

其他方法

上传文件 putObject

功能:将文本字符串 txt 作为文件内容,以指定的 objectName 上传至OSS服务中指定的Bucket。 参数: String txt: 要上传的文本内容。 String objectName: 上传文件在OSS中的名称,应包含文件扩展名。 返回值:成功时返回 PutObjectResult 对象,包含上传结果的元数据;若发生异常,则记录错误日志并返回 null。

上传图片 putImage

功能:将从 inputStream 获取的图片数据,以指定的 fileName 上传至OSS服务中指定的Bucket。 参数: InputStream inputStream: 包含图片数据的输入流。 String fileName: 上传图片在OSS中的名称,应包含文件扩展名。 返回值:成功时返回 PutObjectResult 对象,包含上传结果的元数据;若发生异常,则记录错误日志并返回 null。

创建存储空间 createBucket

功能:在OSS服务中创建一个新的存储空间(Bucket),名称为 bucketName。 参数:String bucketName - 要创建的Bucket名称。 返回值:成功时返回新建的 Bucket 对象;若发生异常,则记录错误日志并返回 null。

下载文件 getObject

功能:从OSS服务中下载指定Bucket和ObjectName的文件,并逐行打印其内容到控制台。 参数: String bucketName: 存储文件的Bucket名称。 String objectName: 要下载的文件在OSS中的名称。 注意:实际应用中可能需要将下载的文件内容保存到本地或进行其他处理,此处仅演示了读取并打印文件内容。

列举文件 listObjects

功能:列举指定Bucket下的所有文件,打印每个文件的Key(即名称)和大小。 参数:String bucketName - 要列举文件的Bucket名称。 返回值:成功时返回 ObjectListing 对象,包含Bucket中文件的列表及相关元数据;若发生异常,则记录错误日志并返回 null。

删除文件 deleteObject

功能:从指定Bucket中删除名为 objectName 的文件。 参数: String bucketName: 存储文件的Bucket名称。 String objectName: 要删除的文件在OSS中的名称。 注意:删除操作不可逆,执行前确保已确认删除目标。

后续版本考虑支持

  1. 添加多个bucket支持
  2. 添加更多丰富的api
相关推荐
香饽饽~、28 分钟前
【第十一篇】SpringBoot缓存技术
java·开发语言·spring boot·后端·缓存·intellij-idea
程序员爱钓鱼1 小时前
Go语言实战指南 —— Go中的反射机制:reflect 包使用
后端·google·go
ℳ₯㎕ddzོꦿ࿐2 小时前
Spring Boot 集成 MinIO 实现分布式文件存储与管理
spring boot·分布式·后端
ai小鬼头6 小时前
百度秒搭发布:无代码编程如何让普通人轻松打造AI应用?
前端·后端·github
考虑考虑6 小时前
@FilterRegistration和@ServletRegistration注解
spring boot·后端·spring
一只叫煤球的猫7 小时前
🔥 同事混用@Transactional和TransactionTemplate被我怼了,三种事务管理到底怎么选?
java·spring boot·后端
算家计算7 小时前
5 秒预览物理世界,2 行代码启动生成——ComfyUI-Cosmos-Predict2 本地部署教程,重塑机器人训练范式!
人工智能·开源
你的人类朋友9 天前
(●'◡'●)从Dockerfile快速入门Docker Compose
后端
GetcharZp9 天前
「神器推荐」Rclone:轻松玩转云端存储,FTP 也能飞起来!
后端
华子w9089258599 天前
基于 SpringBoot+JSP 的医疗预约与诊断系统设计与实现
java·spring boot·后端