我开源了一款阿里云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包

<!-- 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文件中配置如下信息

aliyunoss:bucketName: masiyimarkdownendpoint: https://oss-cn-guangzhou.aliyuncs.comaccessKeyId: LTAI5tRbBzEmyo9sde3g9qqcaccessKeySecret: aDcdwcDeUef1602V42TsdtfAJ42Ma9

aliyunoss.bucketName

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

在这里插入图片描述

aliyunoss.endpoint

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

在这里插入图片描述

accessKeyId,accessKeySecret

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

在这里插入图片描述

第四步,使用AliyunTemplate

    @AutowiredAliyunTemplate 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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/5095.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

K8s: Prometheus 服务结构以及基础抓取数据服务部署

Prometheus 发布应用之后&#xff0c;就有持续运维的事情&#xff0c;就是平台监控Prometheus 是一个云原生的日志监控平台&#xff0c;是一个实时标准的一个技术它是著名的 cncf 里的一个重要的开源项目 上面整个图片是在云原生应用及K8s应用架构下的一个日志监控的一个标准的…

杰发科技AC7840——SPI通信简介(1)_跑通Demo

0. 简介 一些配置项&#xff1a; CPHA&#xff1a;相序 CPLO&#xff1a;极性 看着demo需要按键&#xff0c;于是去掉按键&#xff0c;去掉打印&#xff0c;直接输出波形看逻辑分析仪的信号。 其实现在做这些demo测试应该都有逻辑分析仪&#xff0c;直接看波形更直观一点。…

【C 数据结构】图的存储结构

文章目录 【 1. 图的顺序存储结构 】1.1 基本原理1.2 顺序存储结构的 C 实现 【 2. 图的链式存储结构 】2.1 图的临接表存储结构2.1.1 临接表的 基本原理2.1.2 临接表的 链表节点2.1.3 邻接表 各结构体的C实现2.1.4 临接表 计算顶点的出度和入度邻接表计算 无向图的出度和入度邻…

设计模式学习笔记 - 项目实战二:设计实现一个通用的接口幂等框架(实现)

概述 上篇文章&#xff0c;我们讲解了幂等框架的设计思路。在正常情况下&#xff0c;幂等框架的处理流程是比较简单的。调用方生成幂等号&#xff0c;传递给实现方&#xff0c;实现方记录幂等号或者用幂等号判重。但是&#xff0c;幂等框架要处理的异常情况很多&#xff0c;这…

零知识证明与同态加密:隐私计算的双剑

PrimiHub一款由密码学专家团队打造的开源隐私计算平台&#xff0c;专注于分享数据安全、密码学、联邦学习、同态加密等隐私计算领域的技术和内容。 在数字时代&#xff0c;隐私保护已成为全球关注的焦点。隐私计算作为解决数据隐私问题的关键技术&#xff0c;其核心目标是在不泄…

一款可视化正则表达式工具

regex-vis是一款在线免费且可视化的正则表达式工具 界面图&#xff1a; 只能输入由26个英文字母组成的字符串 ^[A-Za-z]$ 只能输入数字 ^[0-9]*$测试错误 测试正确 快来感受一下叭 官方网址&#xff1a; Regex VisRegex visualizer & editor, make the regular expr…

小红书聚光里的流量洼地:N个百万级别的捡钱机会

小红书聚光里的流量洼地&#xff1a;N个百万级别的捡钱机会 一、前言 在最近的分享会上&#xff0c;笔者主要围绕小红书聚光投流的经验和对其他行业赛道的调研&#xff0c;与大家探讨了小红书的红利机会。在这个竞争激烈的市场中&#xff0c;如何抓住小红书这一流量洼地&…

ESLint 和 Prettier 各自的作用及区别

ESLint 和 Prettier 各自的作用及区别 什么是 ESLint什么是 Prettiereslint 和 prettier 有哪些区别 什么是 ESLint 官方解释&#xff1a;ESLint 是一个可配置的 JavaScript linter。它可以帮助你发现并修复 JavaScript 代码中的问题。问题可以是任何事情&#xff0c;从潜在的运…

在Xshell中利用命令行工具rz和sz实现在无Xftp情况下高效上传与下载文件

在Xshell中利用命令行工具rz和sz实现在无Xftp情况下高效上传与下载文件 引言一、安装lrzsz套件二、应用场景与使用示例1. 上传文件至Linux服务器2. 从Linux服务器下载文件至本地 三、注意事项结语 引言 在日常运维工作中&#xff0c;使用Xshell作为Windows平台下连接Linux服务器…

CPU vs TPU vs GPU vs DPU:一文彻底搞懂这些到底是什么

嘿&#xff0c;科技爱好者们&#xff01;有没有想过在科技世界里到处飞舞的那些缩写是什么意思呢&#xff1f;&#x1f680; CPU、TPU、GPU&#xff0c;现在还有 DPU —— 听起来像是字母汤&#xff0c;对吧&#xff1f;别担心&#xff01;今天&#xff0c;我们就来深入了解这些…

回溯法——(1)装载问题(C语言讲解)

目录 一、装载问题 1.问题概括&#xff1a; 2.解决方案&#xff08;思路&#xff09;&#xff1a; 3.图片讲解&#xff08;超详细&#xff09;&#xff1a; 4.代码分析&#xff1a; 二、算法改进&#xff1a;引入上界函数 1.问题概念&#xff1a; 2.图片讲解&#xff1a…

程序设计:C语言 UNIX/LINUX 环境变量替换

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 很多时候程序希望对配置参数做…

(提示词之家、ora.ai、科大讯飞、豆包、百科Ai)分享好用的ChatGPT

目录 1、提示词之家 2、ChatGPT | ora.ai 3、讯飞星火大模型-AI大语言模型-星火大模型-科大讯飞

【设计模式】工厂方法模式(Factory Method Pattern)

目录标题 工厂方法设计模式详解1. 介绍2. 结构3. 实现步骤3.1 创建抽象产品接口3.2 创建具体产品类3.3 创建抽象工厂接口3.4 创建具体工厂类3.5 客户端使用 4. 好处与优点5. 坏处与缺点6. 适用场景7. 总结 工厂方法设计模式详解 1. 介绍 工厂方法模式是一种创建型设计模式&am…

SpringCloud学习笔记(一)微服务介绍、服务拆分和RestTemplate远程调用、Eureka注册中心

文章目录 1 认识微服务1.1 单体架构1.2 分布式架构1.3 微服务1.4 SpringCloud1.5 总结 2 服务拆分与远程调用2.1 服务拆分原则2.2 服务拆分示例2.2.1 搭建项目2.2.2 创建数据库和表2.2.3 实现远程调用2.2.3.1 需求描述2.2.3.2 注册RestTemplate2.2.3.3 实现远程调用 2.2.4 提供…

strtok,perror,strerror函数·

strtok函数 strtok函数是C语言中的一个字符串函数&#xff0c;用于将一个字符串根据特定的分隔符拆分成多个子字符串。它的函数原型如下&#xff1a; char *strtok(char *str, const char *delim); 在这个函数中&#xff0c;str表示要进行拆分的字符串&#xff0c;delim表示…

Spark01 —— Spark基础

文章目录 Spark01 —— Spark基础一、为什么选择Spark&#xff1f;1.1 MapReduce编程模型的局限性1.2 Spark与MR的区别1.3 版本1.4 优势1.5 Spark其他知识1、多种运行模式2、技术栈3、spark-shell&#xff1a;Spark自带的交互式工具4、Spark服务 二、Spark的基础配置三、Spark实…

Spring-Mybatis-Xml管理(动态sql语句,sql语句复用)

目录 前置条件 动态SQL语句 动态删除数据 1.集合类型:数组 2.集合类型: List 型 SQL语句重用 说明 &#x1f9e8;前置条件 已经创建了实体类(这边举个例子) 实体类User表 表中的字段名User实体类的属性值id (bigint auto increment) 长整型 自动增长private Long iduser…

前端性能优化篇之如何对项目中的图片进行优化?常见的图片格式及使用场景

目录 如何对项目中的图片进行优化&#xff1f;常见的图片格式及使用场景 如何对项目中的图片进行优化&#xff1f; 优化项目中的图片对于提高网页性能和用户体验至关重要。 减少图片使用&#xff1a; 如果可能的话&#xff0c;尽量用 CSS 来代替一些修饰性图片&#xff0c;这样…

day17-day20_项目实战项目部署

万信金融 项目部署 目标&#xff1a; 理解DevOps概念 能够使用Docker Compose部署项目 理解持续集成的作用 会使用Jenkins进行持续集成 1 DevOps介绍 1.1 什么是DevOps DevOps是Development和Operations两个词的缩写&#xff0c;引用百度百科的定义&#xff1a; DevOps…