当前位置: 首页 > news >正文

分布式文件管理系统(MinIO)

1.去中心化,每个点是对等的关系,通过Ngix对负载做均衡工作。

        好处: 能够避免单点故障,将多块硬盘组成一个对象存储服务。

2. 使用纠删编码技术来保护数据,是一种回复丢失和损坏的数据的数学算法,他将数据分块冗余的放在各个节点的磁盘上,纠删编码的好处是,当丢失节点的数量恰好等于一半的时候,不能上传数据,但是可以可以访问并下载剩余节点的数据,但是当节点的宕机数量大于一半的时候则不能上传或下载数据。

3.安装及使用

安装方法,在F:\javaSoftWare\minio下建立data_test文件夹用于将数据存储在这三个文件夹中,然后在F:\javaSoftWare\minio下,(含有minio.exe文件),运行如下命令,开启minio。

F:\javaSoftWare\minio>minio.exe server F:\javaSoftWare\minio\data_test\data1 F:\javaSoftWare\minio\data_test\data2 F:\javaSoftWare\minio\data_test\data3 F:\javaSoftWare\minio\data_test\data4

得到的运行结果如下:

1)老版本使用的MINIO_ACCESS_KEY 和 MINIO_SECRET_KEY不推荐使用,推荐使用MINIO_ROOT_USER 和MINIO_ROOT_PASSWORD设置账号和密码。

2)pool即minio节点组成的池子,当前有一个pool和4个硬盘组成的set集合

3)因为集合是4个硬盘,大于2的硬盘损坏数据将无法恢复。

4)账号和密码默认为minioadmin、minioadmin,可以在环境变量中设置通过'MINIO_ROOT_USER' and 'MINIO_ROOT_PASSWORD' 进行设置。

下边输入http://localhost:9000进行登录。

4.测试:

下一步创建bucket,桶,它相当于存储文件的目录,可以创建若干的桶。 

输入bucket的名称,点击“CreateBucket”,创建成功

点击“upload”上传文件。

下边上传几个文件

 我们发现上传的1.mp4文件存储在了四个目录,即四个硬盘上。

5.maven

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

需要三个参数才能连接到minio服务。

参数

说明

Endpoint

对象存储服务的URL

Access Key

Access key就像用户ID,可以唯一标识你的账户。

Secret Key

Secret key是你账户的密码。

代码示例:

package com.xuecheng.media;import io.minio.*;
import org.apache.commons.io.IOUtils;
import org.junit.jupiter.api.Test;import java.io.File;
import java.io.FileOutputStream;
import java.io.FilterInputStream;/*** @author Mr.M* @version 1.0* @description 测试minio上传文件、删除文件、查询文件* @date 2022/10/13 14:42*/
public class MinIOTest {static MinioClient minioClient =MinioClient.builder().endpoint("http://192.168.101.65:9000").credentials("minioadmin", "minioadmin").build();@Testpublic void upload() {try {UploadObjectArgs uploadObjectArgs = UploadObjectArgs.builder().bucket("testbucket").object("IMG_3118.DNG")//同一个桶内对象名不能重复.filename("F:\\IPHONE照片\\1022\\IMG_3118.DNG").build();//上传minioClient.uploadObject(uploadObjectArgs);System.out.println("上传成功了");} catch (Exception e) {System.out.println("上传失败");}}//指定桶内的子目录@Testpublic void upload2() {try {UploadObjectArgs uploadObjectArgs = UploadObjectArgs.builder().bucket("testbucket").object("test/IMG_3127.JPG")//同一个桶内对象名不能重复.filename("F:\\IPHONE照片\\1022\\IMG_3127.JPG").build();//上传minioClient.uploadObject(uploadObjectArgs);System.out.println("上传成功了");} catch (Exception e) {System.out.println("上传失败");}}//删除文件@Testpublic void delete() {try {RemoveObjectArgs removeObjectArgs = RemoveObjectArgs.builder().bucket("testbucket").object("test/IMG_3127.JPG").build();minioClient.removeObject(removeObjectArgs);} catch (Exception e) {}}//查询文件@Testpublic void getFile() {GetObjectArgs getObjectArgs = GetObjectArgs.builder().bucket("testbucket").object("IMG_3118.DNG").build();try(FilterInputStream inputStream = minioClient.getObject(getObjectArgs);FileOutputStream outputStream = new FileOutputStream(new File("D:\\IMG_3118.DNG"));) {if(inputStream!=null){IOUtils.copy(inputStream,outputStream);}} catch (Exception e) {}}}

相关文章:

分布式文件管理系统(MinIO)

1.去中心化&#xff0c;每个点是对等的关系&#xff0c;通过Ngix对负载做均衡工作。 好处&#xff1a; 能够避免单点故障&#xff0c;将多块硬盘组成一个对象存储服务。 2. 使用纠删编码技术来保护数据&#xff0c;是一种回复丢失和损坏的数据的数学算法&#xff0c;他将数据分…...

Springcloud-配置中心config

一、添加依赖<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-config-server</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId&…...

[项目篇] 音乐播放器开发报告

文章目录1. 项目描述:2. 项目上线展现&#xff1a;3. 项目具体实现&#xff1a;1. 登录2. 注册3.退出系统4.添加音乐4.1前后端交互约定4.2上传文件业务逻辑&#xff1a;4.3创建model包中的music类4.4在MusicMapper接口中&#xff0c;声明insertMusic抽象方法4.5在mybatis包中添…...

Spring Cloud Alibaba--gateway微服务详解之网关(二)

1、网关介绍 上篇对微服务中的nacos注册中心进行集成讲解。nacos主要作用是管理多服务之间复杂关系的组件。微服务是非常庞大且问题突出的架构&#xff0c;HTTP协议具有跨源资源共享 (CORS) Cross- Origin Resource Sharing机制&#xff0c;而处于安全考虑往往前端架构都会对跨…...

Zynq非VDMA方案实现视频3帧缓存输出,无需SDK配置,提供工程源码和技术支持

目录1、前言2、VDMA的不便之处3、FDMA取代VDMA实现视频缓存输出4、Vivado工程详解5、上板调试验证并演示6、福利&#xff1a;工程代码的获取1、前言 对于Zynq和Microblaze的用户而言&#xff0c;要想实现图像缓存输出&#xff0c;多半要使用Xilinx推荐的VDMA方案&#xff0c;该…...

血液透析过滤芯气密性检测装置中的高精度多段压力控制解决方案

摘要&#xff1a;针对目前血液过滤芯气密性检测过程中存在的自动化水平较低、多个检测压力之间需人工切换和压力控制精度较差的问题&#xff0c;为满足客户对高精度和自动化气密性检测的要求&#xff0c;本文提出了相应的解决方案。解决方案的主要特点是全过程的可编程压力控制…...

PDF加密如何批量解除?快来了解下这个方法

在现代办公环境中&#xff0c;PDF文档的使用非常普遍。然而&#xff0c;由于一些安全需求&#xff0c;有时候PDF文档会被加密&#xff0c;使得只有授权人员可以查看或修改它。但是&#xff0c;如果您需要对许多加密PDF文档进行操作&#xff0c;逐个解密这些文档可能非常费时费力…...

C++——哈希4|布隆过滤器

目录 布隆过滤器 完整代码 布隆过滤器应用 布隆过滤器的查找 布隆过滤器删除 布隆过滤器优点 布隆过滤器缺陷 布隆过滤器海量数据处理 布隆过滤器 位图只能映射整形&#xff0c;而对于字符串却无能为力。 把字符串用哈希算法转成整形&#xff0c;映射一个位置进行标…...

python冒号的用法总结

一维数组 1. 单个冒号的情况 1.1 写完整的情况下 单个冒号的情况下&#xff0c;对数组的遍历操作是从前向后操作。如&#xff1a;arr[a:b] &#xff0c;冒号前的a含义是从a开始遍历&#xff0c;冒号后的b含义是到b截止&#xff08;不包括b&#xff09;。 arr [1, 2, 3, 4,…...

面试题整理

面试题整理 一、Java基础 1、Java 语言有哪些特点 简单易学&#xff1b; 面向对象&#xff08;封装&#xff0c;继承&#xff0c;多态&#xff09;&#xff1b; 平台无关性&#xff08; Java 虚拟机实现平台无关性&#xff09;&#xff1b; 支持多线程&#xff08; C 语言…...

C语言深度解剖-关键字(7)

目录 switch case 语句 理解&#xff1a; 补充&#xff1a; 深入理解&#xff1a; default 语句&#xff1a; case语句&#xff1a; 总结&#xff1a; do、while、for 关键字 while for do while 各种死循环方法&#xff1a; while for do while getchar 写在…...

利用JavaScript编写Python内置函数查询工具

最近我开始学习Python编程语言&#xff0c;我发现Python拥有非常丰富的内置函数&#xff0c;可以用来实现各种不同的功能。但是每当我需要查找一个内置函数时&#xff0c;我总是需要联网使用搜索引擎进行查询。这种方式不仅费时费力&#xff0c;而且需要联网&#xff0c;很不方…...

【MySQL进阶】SQL优化

&#x1f60a;&#x1f60a;作者简介&#x1f60a;&#x1f60a; &#xff1a; 大家好&#xff0c;我是南瓜籽&#xff0c;一个在校大二学生&#xff0c;我将会持续分享Java相关知识。 &#x1f389;&#x1f389;个人主页&#x1f389;&#x1f389; &#xff1a; 南瓜籽的主页…...

最新版海豚调度dolphinscheduler-3.1.3配置windows本地开发环境

0 说明 本文基于最新版海豚调度dolphinscheduler-3.1.3配置windows本地开发环境&#xff0c;并在windows本地进行调试和开发 1 准备 1.1 安装mysql 可以指定为windows本地mysql&#xff0c;也可以指定为其他环境mysql&#xff0c;若指定为其他环境mysql则可跳过此步。 我这…...

csv文件完整操作总结

csv文件完整操作总结 1.概述 csv 模块主要用于处理从电子数据表格Excel或数据库中导入到文本文件的数据&#xff0c;通常简称为 comma-separated value &#xff08;CSV&#xff09;格式因为逗号用于分离每条记录的各个字段。 2.读写操作 2.1.测试数据 创建一个test.csv文…...

时间序列预测--基于CNN的股价预测(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 时间序列预测有很多方法&#xff0c;如传统的时序建模方法ARIMA、周期因子法、深度学习网络等&#xff0c;本次实验采用最简单的…...

Dubbo与Spring Cloud优缺点分析(文档学习个人理解)

文章目录核心部件1、总体框架1.1 Dubbo 核心部件如下1.2 Spring Cloud 总体架构2、微服务架构核心要素3、通讯协议3.1 Dubbo3.2 Spring Cloud3.3 性能比较4、服务依赖方式4.1 Dubbo4.2 Spring Cloud5、组件运行流程5.1 Dubbo5.2 Dubbo 运行组件5.3 Spring Cloud5.4 Spring Clou…...

单元测试工具——JUnit的使用

⭐️前言⭐️ 本篇文章主要介绍单元测试工具JUnit的使用。 &#x1f349;欢迎点赞 &#x1f44d; 收藏 ⭐留言评论 &#x1f4dd;私信必回哟&#x1f601; &#x1f349;博主将持续更新学习记录收获&#xff0c;友友们有任何问题可以在评论区留言 &#x1f349;博客中涉及源码…...

Linux_基本权限

Linux入门第二篇已送达&#xff01; Linux_基本权限shell外壳权限Linux的用户分类角色划分Linux的文件文件类型查看权限目录的权限默认权限粘滞位shell外壳 为了保护操作系统&#xff0c;用户的指令不能由操作系统直接进行执行&#xff0c;需要一个中间者&#xff0c;比如Linu…...

3、JavaScript面试题

1, Js数据类型有哪些&#xff1f;数值、字符串、布尔、undefined、null、数组、对象、函数2, 引用类型和值类型的区别- 值类型存在于栈中, 存取速度快 引用类型存在于堆,存取速度慢- 值类型复制的是值本身 引用类型复制的是指向对象的指针- 值类型结构简单只包含基本数据, 引用…...

MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例

一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 &#x1f4dd; 在上一篇文章中&#xff0c;我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源&#xff0c;方便后续将资源打包到一个可执行文件中。 2.embed介绍 &#x1f3af; Go 1.16 引入了革命性的 embed 包&#xff0c;彻底改变了静态资源管理的…...

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问&#xff08;基础概念问题&#xff09; 1. 请解释Spring框架的核心容器是什么&#xff1f;它在Spring中起到什么作用&#xff1f; Spring框架的核心容器是IoC容器&#…...

【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案

目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后&#xff0c;迭代器会失效&#xff0c;因为顺序迭代器在内存中是连续存储的&#xff0c;元素删除后&#xff0c;后续元素会前移。 但一些场景中&#xff0c;我们又需要在执行删除操作…...

6.9-QT模拟计算器

源码: 头文件: widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QMouseEvent>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nullptr);…...

webpack面试题

面试题&#xff1a;webpack介绍和简单使用 一、webpack&#xff08;模块化打包工具&#xff09;1. webpack是把项目当作一个整体&#xff0c;通过给定的一个主文件&#xff0c;webpack将从这个主文件开始找到你项目当中的所有依赖文件&#xff0c;使用loaders来处理它们&#x…...

Redis上篇--知识点总结

Redis上篇–解析 本文大部分知识整理自网上&#xff0c;在正文结束后都会附上参考地址。如果想要深入或者详细学习可以通过文末链接跳转学习。 1. 基本介绍 Redis 是一个开源的、高性能的 内存键值数据库&#xff0c;Redis 的键值对中的 key 就是字符串对象&#xff0c;而 val…...

精益数据分析(98/126):电商转化率优化与网站性能的底层逻辑

精益数据分析&#xff08;98/126&#xff09;&#xff1a;电商转化率优化与网站性能的底层逻辑 在电子商务领域&#xff0c;转化率与网站性能是决定商业成败的核心指标。今天&#xff0c;我们将深入解析不同类型电商平台的转化率基准&#xff0c;探讨页面加载速度对用户行为的…...

Docker、Wsl 打包迁移环境

电脑需要开启wsl2 可以使用wsl -v 查看当前的版本 wsl -v WSL 版本&#xff1a; 2.2.4.0 内核版本&#xff1a; 5.15.153.1-2 WSLg 版本&#xff1a; 1.0.61 MSRDC 版本&#xff1a; 1.2.5326 Direct3D 版本&#xff1a; 1.611.1-81528511 DXCore 版本&#xff1a; 10.0.2609…...

新版NANO下载烧录过程

一、序言 搭建 Jetson 系列产品烧录系统的环境需要在电脑主机上安装 Ubuntu 系统。此处使用 18.04 LTS。 二、环境搭建 1、安装库 $ sudo apt-get install qemu-user-static$ sudo apt-get install python 搭建环境的过程需要这个应用库来将某些 NVIDIA 软件组件安装到 Je…...