spring boot 3.0如何优雅的使用s3协议连接minio

1.引入pom

<dependency><groupId>io.awspring.cloud</groupId><artifactId>spring-cloud-aws-starter-s3</artifactId><version>3.0.3</version>
</dependency>
  1. 添加配置文件
spring:cloud:aws:credentials:access-key: xxxxxsecret-key:xxxxxs3:endpoint: http://xxxxxregion:static: us-east-1  #这里必须要填一个不然会报错
  1. 下载文件
    可以通过使用s3协议引用 Amazon S3 存储桶和存储桶内的对象来下载文件。典型的模式是s3:///,bucket 是全局唯一的bucket 名称,object 是bucket 内的有效对象名称。对象名称可以是存储桶根文件夹中的文件,也可以是存储桶内目录中的嵌套文件。

下一个示例演示如何使用资源加载器加载不同的资源。

public class SimpleResourceLoadingBean {@Autowiredprivate ResourceLoader resourceLoader;public void resourceLoadingMethod() throws IOException {Resource resource = this.resourceLoader.getResource("s3://myBucket/rootFile.log");Resource secondResource = this.resourceLoader.getResource("s3://myBucket/rootFolder/subFile");InputStream inputStream = resource.getInputStream();//read file}
}

4.上传文件
从 Spring Framework 3.1 开始,资源加载器也可以用来上传带有org.springframework.core.io.WritableResource 接口的文件,这是接口的特殊化org.springframework.core.io.ResourceLoader。客户端可以使用该WritableResource界面上传文件。下一个示例演示使用资源加载器上传资源。

public class SimpleResourceLoadingBean {@Autowiredprivate ResourceLoader resourceLoader;public void writeResource() throws IOException {Resource resource = this.resourceLoader.getResource("s3://myBucket/rootFile.log");WritableResource writableResource = (WritableResource) resource;try (OutputStream outputStream = writableResource.getOutputStream()) {outputStream.write("test".getBytes());}}
}

5.获取文件具有时效的下载地址

@Autowired
private S3Template s3Template;
@Autowired
private S3Client s3client;public URL getfileUrl(String bucketName,String path){   return s3Template.createSignedGetURL(bucketName,path,Duration.ofDays(7));
}

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

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

相关文章

【深度学习】神经网络的建立与推理

文章目录 神经网络&#xff08;neural network&#xff09;的结构神经元中常用的激活函数&#xff08;activation function&#xff09;神经网络的表示神经网络的代码实现使用已学习完毕的神经网络进行推理&#xff08;inference&#xff09; 源代码文件请点击此处&#xff01;…

毕设(二)——NB-IOT通信模块(nb卡通信测试)+gps定位

文章目录 一、关于接线2月1日记录2月4日记录 二、网络连接测试三、HTTP通信3.1 网络调试3.2 nb-lot的连接测试 一、关于接线 如果pico的供电能力不行&#xff0c;可能会直接用4.2V的锂电池对右下引脚进行供电 这个模块只支持nb卡&#xff0c;我哭死&#xff0c;20块钱&#xff…

01 Qt自定义风格控件的基本原则

目录 1.继承原生控件 2.组合原生控件 3.仿写原生控件 PS:后续将继续分享开发实践中各类自定义控件的方法、思路以及组件库 1.继承原生控件 关键字&#xff1a;继承、paintEvent 这里想说的是&#xff0c;Qt的Gui框架在封装原生控件的同时&#xff0c; 也为开发者提供了各…

建站用帝国CMS好还是WordPress好

随着互联网的迅猛发展&#xff0c;内容管理系统(CMS)在网站建设中扮演着越来越重要的角色。在众多CMS中&#xff0c;帝国CMS和WordPress因其强大的功能和广泛的用户基础而备受关注。本文将对这两种CMS进行详细比较&#xff0c;分析它们的优势与不足&#xff0c;以便用户能够根据…

每日一题——LeetCode1464.数组中两元素的最大乘积

这题就是找数组里的最大值和次大值 方法一 排序 var maxProduct function(nums) {nums.sort((a,b)>b-a)return (nums[0] - 1) * (nums[1] - 1); }; 消耗时间和内存情况&#xff1a; 方法二 一次遍历&#xff1a; var maxProduct function(nums) {let first-1,second-…

【Go】五、Grpc 的入门使用

grpc 与 protobuf grpc 使用的是 protobuf 协议&#xff0c;其是一个通用的 rpc 框架&#xff0c;基本支持主流的所有语言、其底层使用 http/2 进行网络通信&#xff0c;具有较高的效率 protobuf 是一种序列化格式&#xff0c;这种格式具有 序列化以及解码速度快&#xff08;…

MySQL的备份与恢复案例

新建数据库 数据库备份&#xff0c;数据库为school&#xff0c;素材如下1.创建student和score表CREATE TABLE student ( id INT(10) NOT NULL UNIQUE PRIMARY KEY , name VARCHAR(20) NOT NULL , sex VARCHAR(4) , birth YEAR, department VARCHAR(20) , address…

Python3类变量

诸神缄默不语-个人CSDN博文目录 在Python中&#xff0c;类变量是定义在类中且在函数体外的变量。类变量可以通过类本身或类的实例来访问。类变量分为三种类型&#xff1a;类属性、实例属性和局部变量。本文将分别介绍这三种类型的类变量&#xff0c;并通过简单易懂的代码示例进…

打码半年,开源一款自定义大屏设计软件!

hi&#xff0c;大家好&#xff0c;我是Tduck马马。 最近我们开源了一款大屏软件-TReport&#xff0c;与大家分享。 TReport是一款基于Vue3技术栈的数据可视化系统&#xff0c;支持静态、动态api等数据源&#xff1b;可用于数据可视化分析、报表分析、海报设计使用。 提供自定…

leetcode hot100 分割等和子集

在本题中&#xff0c;我们是要把一个数组&#xff0c;分割成两个子集&#xff0c;并且两个子集的元素和相等。那么也就是说&#xff0c;两个子集的和是相等的&#xff0c;并且都是整个数组的一半。那我们考虑这是一个01背包问题&#xff0c;物品的价值和物品的质量一样&#xf…

linux 10 定时任务

作用: 计划任务主要是做一些周期性的任务&#xff0c; 目前最主要的用途是定期备份数据。 at命令的时间格式&#xff1a; 例子&#xff1a; crontab有系统级别的任务&#xff0c;用户的不放在这里 查看用户任务 或者用

VSCODE使用Django

https://code.visualstudio.com/docs/python/tutorial-django#_use-a-template-to-render-a-page 通过模板渲染页面 HTML文件 实现步骤 1&#xff0c; 修改代码&#xff0c;hello的App名字增加到installed_apps表中。 2&#xff0c; hello子目录下&#xff0c;创建 .\templat…

Unity【角色/摄像机移动控制】【3.摄像机跟随角色】

本章代码基于前两章。 1. 我们新建CameraController脚本&#xff0c;将其挂载到Camera上 2. 在角色Player下新建一个空物体&#xff0c;命名为cameraTargetPoint&#xff0c;并将该物体挂载至CameraController脚本中【注意代码中的这行&#xff1a;public Transform cameraTarg…

二分算法02

二分算法02 1. 每个小孩最多能分到多少糖果2. 准时到达的列车最小时速3. 在 D 天内送达包裹的能力 1. 每个小孩最多能分到多少糖果 给你一个 下标从 0 开始 的整数数组 candies 。数组中的每个元素表示大小为 candies[i] 的一堆糖果。你可以将每堆糖果分成任意数量的 子堆 &am…

一文搞懂LDO !

7.LDO 1.原理 通过运放调节P-MOS的输出 低压差&#xff1a; 输出压降比较低&#xff0c;例如输入3.3V&#xff0c;输出可以达到3.2V。 线性&#xff1a; LDO内部的MOS管工作于线性状态。&#xff08;可变电阻区&#xff09; 稳压器&#xff1a; 说明了LDO的用途是用来给电…

Panalog大数据日志审计系统libres_syn_delete.php存在命令执行漏洞

文章目录 前言声明一、Panalog大数据日志审计系统简介二、漏洞描述三、影响版本四、漏洞复现五、整改意见 前言 Panalog大数据日志审计系统定位于将大数据产品应用于高校、 公安、 政企、 医疗、 金融、 能源等行业之中&#xff0c;针对网络流量的信息进行日志留存&#xff0c…

Maven(基础)、MyBatis

简介 Apache Maven是一个项目管理和构建工具&#xff0c;它基于项目对象模型 (POM)的概念&#xff0c;通过一小段描述信息来管理项目的构建、报告和文档 官网: http://maven.apache.org/ Maven作用 Maven是专门用于管理和构建Java项目的工具&#xff0c;它的主要功能有&#x…

C语言——从头开始——深入理解指针(1)

一.内存和地址 我们知道计算上CPU&#xff08;中央处理器&#xff09;在处理数据的时候&#xff0c;是通过地址总线把需要的数据从内存中读取的&#xff0c;后通过数据总线把处理后的数据放回内存中。如下图所示&#xff1a; 计算机把内存划分为⼀个个的内存单元&#xff0c;每…

php使用get_browser()函数将移动端和pc端分开

首先&#xff0c;确保你的PHP版本支持get_browser函数。get_browser函数是PHP内置的函数&#xff0c;但需要配置php.ini文件中的browscap参数&#xff0c;指定一个浏览器配置文件。 下载浏览器配置文件。你可以从 https://download.csdn.net/download/bigorange1/88850695 下…

vulhub中Apache Log4j Server 反序列化命令执行漏洞复现(CVE-2017-5645)

Apache Log4j是一个用于Java的日志记录库&#xff0c;其支持启动远程日志服务器。Apache Log4j 2.8.2之前的2.x版本中存在安全漏洞。攻击者可利用该漏洞执行任意代码。 1.我们使用ysoserial生成payload&#xff0c;然后直接发送给your-ip:4712端口即可。 java -jar ysoserial-…