MinIO 分布式文件系统 快速入门 这篇就够了

1.MinIO简介

        MinIO 是一个开源的对象存储服务,它提供了一个可扩展的分布式文件系统,用于存储和检索任意类型的数据。MinIO 旨在为云原生应用程序提供快速、可靠和成本效益高的存储服务,并支持多种数据格式和协议,如Amazon S3 API。

2. 在docker上部署minio

关于docker上的部署这篇讲解很详细,大家可以参考

http://t.csdnimg.cn/FWT1Yicon-default.png?t=N7T8http://t.csdnimg.cn/FWT1Y

3. minio的基本使用

3.1 创建bucket

 

3.2 上传文件(打开bucket的右边)

4. 使用Java代码实现minIO

4.1 引入依赖

        <dependency>
            <groupId>io.minio</groupId>
            <artifactId>minio</artifactId>
            <version>8.4.3</version>
        </dependency>

        <dependency>
            <groupId>com.squareup.okhttp3</groupId>
            <artifactId>okhttp</artifactId>
            <version>4.8.1</version>
        </dependency>

4.2 上传文件、删除文件、下载文件的代码

@SpringBootTest
class MinioDemoApplicationTests {
    // 创建一个MinioClient实例,用于与MinIO服务器的交互
    MinioClient minioClient =
            MinioClient.builder()
                    .endpoint("http://192.168.92.136:9000") // MinIO服务器的地址
                    .credentials("minioadmin","minioadmin") // MinIO服务的访问凭证
                    .build();

    // 上传文件
    @Test
    void testUpload() throws Exception {
        // 创建上传文件的参数信息
        UploadObjectArgs uploadObjectArgs = UploadObjectArgs.builder()
                .bucket("testbucket") // 指定上传到哪个桶
                .filename("C:\\Users\\haoge\\Pictures\\9780fe1eaa34499fa37f560e6f9a2818_1507729237.png") // 本地文件的路径
                .object("9780fe1eaa34499fa37f560e6f9a2818_1507729237.png") // 在MinIO中存储的文件名
                .build();

        // 使用MinioClient上传文件
        minioClient.uploadObject(uploadObjectArgs);
    }

    // 删除文件
    @Test
    void testDelete() throws Exception{
        // 创建删除文件的参数信息
        RemoveObjectArgs removeObjectArgs = RemoveObjectArgs.builder()
                .bucket("testbucket") // 指定从哪个桶删除
                .object("9780fe1eaa34499fa37f560e6f9a2818_1507729237.png") // 要删除的文件名
                .build();

        // 使用MinioClient删除文件
        minioClient.removeObject(removeObjectArgs);
    }

    // 下载文件
    @Test
    void testGetFile() throws Exception{
        // 创建获取文件的参数信息
        GetObjectArgs getObjectArgs = GetObjectArgs.builder()
                .bucket("testbucket") // 指定从哪个桶获取文件
                .object("9780fe1eaa34499fa37f560e6f9a2818_1507729237.png") // 要获取的文件名
                .build();

        // 使用MinioClient获取文件的输入流
        FilterInputStream inputStream = minioClient.getObject(getObjectArgs);

        // 创建本地文件的输出流
        FileOutputStream outputStream = new FileOutputStream(new File("D:\\1.png"));

        // 使用IOUtils的copy方法将输入流中的数据复制到输出流中,即写入到本地文件
        IOUtils.copy(inputStream, outputStream);
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java 语言概述 -- Java 语言的介绍、现在、过去与将来

大家好&#xff0c;我是栗筝i&#xff0c;这篇文章是我的 “栗筝i 的 Java 技术栈” 专栏的第 001 篇文章&#xff0c;在 “栗筝i 的 Java 技术栈” 这个专栏中我会持续为大家更新 Java 技术相关全套技术栈内容。专栏的主要目标是已经有一定 Java 开发经验&#xff0c;并希望进…

《软件定义安全》之一:SDN和NFV:下一代网络的变革

第1章 SDN和NFV&#xff1a;下一代网络的变革 1.什么是SDN和NFV 1.1 SDN/NFV的体系结构 SDN SDN的体系结构可以分为3层&#xff1a; 基础设施层由经过资源抽象的网络设备组成&#xff0c;仅实现网络转发等数据平面的功能&#xff0c;不包含或仅包含有限的控制平面的功能。…

华为防火墙 1

华为防火墙1 实验拓扑&#xff1a; 实验步骤&#xff1a; 1.完成终端基本IP信息配置 2.配置防火墙&#xff1a; 2.1配置IP地址 sys Enter system view, return user view with CtrlZ. [USG6000V1]undo in e Info: Saving log files… Info: Information center is disabled. […

Spark 性能调优——分布式计算

前言 分布式计算的精髓&#xff0c;在于如何把抽象的计算流图&#xff0c;转化为实实在在的分布式计算任务&#xff0c;然后以并行计算的方式交付执行。今天这一讲&#xff0c;我们就来聊一聊&#xff0c;Spark 是如何实现分布式计算的。分布式计算的实现&#xff0c;离不开两个…

详解SM3算法加密流程(SM3加密算法一)

1、SM3 算法简介 SM3是中国国家密码管理局发布的消息摘要算法&#xff0c;首次发布于2010年&#xff0c;并于2016年发布了正式的国家标准GB/T 32905-2016。类似于国际上广泛应用的SHA-256算法&#xff0c;但有其独特的设计和实现细节。 该算法应用于各种数据加密和验证场景&…

vs - vs2015编译gtest-v1.12.1

文章目录 vs - vs2015编译gtest-v1.12.1概述点评笔记将工程迁出到本地后&#xff0c;如果已经编译过工程&#xff0c;将工程Revert, Clean up 干净。编译用的CMake, 优先用VS2019自带的打开VS2015X64本地命令行编译gtest工程测试安装自己写个测试工程&#xff0c;看看编译出来的…

使用小黄鸟(HttpCanary)、VMOS Pro虚拟机对手机APP进行抓包(附带软件)

老规矩先看&#xff0c;效果图&#xff1a; 文章很详细&#xff0c;希望可以耐心看完&#xff0c;保证可以学会抓包&#xff0c;不再走冤枉路&#xff0c;小编在之前看过太多类似文章&#xff0c;折腾了太久才搞懂的&#xff0c;写这篇文章就是不想希望你们像小编一样再花时间…

谁也没想到来得如此之快,现在二三线城市就有电梯楼变成贫民窟了

独家首发 ----------------- 高层电梯楼贫民窟化&#xff0c;一直是业界担忧的问题&#xff0c;许多人以为这个问题应该还要十多年时间才会成为现实&#xff0c;然而有网友表示在二三线城市已出现高层电梯楼贫民窟化&#xff0c;时间比大家预期的早得多。 该网友说&#xff0c;…

easyexcel将csv转为excel处理数字问题

使用easyexcel可以将csv格式的文件转为.xlsx文件&#xff0c;但是csv中有很多数字&#xff0c;比如&#xff1a;"123","12.34","-111"&#xff0c;默认情况下会将其作为字符串写入.xlsx文件&#xff0c;就如同下面一样&#xff0c;字符类型的数字…

Nginx学习笔记(九)location转发后,proxy_pass结尾带 / 和不带 / 的区别

目录 一、知识回顾二、proxy_pass 结尾带 / 和不带 / 的区别2.1 场景假设2.2 实战验证验证1&#xff1a;结尾带/的场景验证2&#xff1a;不带/的场景 2.3 结论 一、知识回顾 之前使用过 Nginx 的小伙伴或许都了解&#xff0c;Nginx 是一款用于请求转发的高性能中间件&#xff…

【数据结构(邓俊辉)学习笔记】图03——拓扑排序

文章目录 0. 概述1. 零入度算法1. 1 拓扑排序1. 2 算法 2. 零出度算法2.1 算法2.2 实现2.3. 复杂度 0. 概述 学习下拓扑排序 1. 零入度算法 1. 1 拓扑排序 首先理解下拓扑排序 其实老师经常干这事&#xff0c;如编讲义&#xff0c;将已经知道的知识点串起来变成讲课序列。那…

Vivado时序报告之Datasheet详解

目录 一、前言 二、Datasheet配置选项说明 2.1 Options 2.2 Groups 2.3 Timer Settings 2.4 Common Options 三、Datasheet报告 3.1 General Information 3.2 Input Ports Setup/Hold 3.3 Output Ports Clock-to-out 3.4 Setup between Clocks 3.5 Combinational…

盘点 2024 Google I/O 中的 Android 方向关键更新

这里写自定义目录标题 前言1. AI 编程助手2. 生成式AI 应用3. 不同屏幕尺寸适配4. 桌面小部件&#xff08;Widget&#xff09;5. 跨设备类型开发6. WearOS & 可穿戴7. Android for Car8. Android TV9. Google Home API10. Kotlin Multiplatform11. Jetpack Compose12. Andr…

HTML+CSS+JS 密码灯登录表单

效果演示 实现了一个登录页面,包括一个标题、两个输入框(用户名和密码)、一个登录按钮和一个眼睛图标。点击眼睛图标可以显示或隐藏密码。页面背景有两个圆形的半透明元素,整个页面使用了flex布局,并且在水平和垂直方向上都居中对齐。登录框使用了阴影效果和圆角边框,并且…

Jmeter 压力测测试的简单入门

下载安装 官方网站&#xff1a;Apache JMeter - Download Apache JMeter 下载完成解压即可。 配置 1. 找到 bin 目录下的 ApacheJMeter.jar 包&#xff0c;直接打开 如果向图片这样不能直接打开&#xff0c;就在此路径运行 CMD&#xff0c;然后输入下面的命令即可启动。 ja…

微信小程序学习笔记(4)

文章目录 1、< template >< / template >2、样式导入i、wxmlii、wxss 3、flex布局i、容器属性ii、项目属性 1、< template >< / template > 模板可以重复调用 首先要定义一个模板&#xff1a; <template name"test"><view>{{…

Python GUI编程:深入探索现代GUI库及其创新应用

目录 引言 Python GUI库概览 1. Tkinter 2. PyQt/PySide 3. wxPython 4. Kivy 5. PyGTK 6.FLTK (pyFLTK) 创新应用案例 1. 交互式数据分析工具 2. 智能物联网(IoT)仪表板 3. 增强现实(AR)辅助设计软件 4. 跨平台的科学计算软件 5. 交互式教育软件 实战示例1&…

Springboot整合SpringCache+redis简化缓存开发

使用步骤&#xff1a; 1.引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</artifactId> </dependency><dependency><groupId>org.springframework.boot</groupI…

MySQL—多表查询—标量子查询

一、引言 上篇学习完子查询的概念和分类。 现在来学习第一种子查询——标量子查询。 &#xff08;1&#xff09;标量子查询的基本概念 子查询返回的结果是单个值&#xff0c;也就是一行一列&#xff08;可以是数字、字符串、日期等&#xff09; 是一种最简单的子查询形式&am…

【机器人和人工智能——自主巡航赛项】进阶篇

文章目录 案例要求创建地图rviz仿真 保存地图坐标点定位识别训练主逻辑理解语音播报模块匹配二维码识别多点导航讲解视频其余篇章 案例要求 创建地图 ./1-gmapping.sh 把多个launch文件融合在sh文件里面 rviz仿真 rviz是rose集成的可视化界面&#xff0c;查看机器人的各项数…