基于Minio实现分布式云存储
一、docker环境下部署
docker run -d -p 9000:9000 -p 50000:50000 --name minio \
-e "MINIO_ROOT_USER=admin" \
-e "MINIO_ROOT_PASSWORD=12345678" \
-v /mnt/data:/data \
-v /mnt/config:/root/.minio \
minio/minio server --console-address ":50000" /data
4 纠删码模式
4.1 介绍
4.2 实现
docker run -d -p 9000:9000 -p 50000:50000 --name minio \
-v /mnt/data1:/data1 \
-v /mnt/data2:/data2 \
-v /mnt/data3:/data3 \
-v /mnt/data4:/data4 \
-v /mnt/data5:/data5 \
-v /mnt/data6:/data6 \
-v /mnt/data7:/data7 \
-v /mnt/data8:/data8 \
minio/minio server /data{1...8} --console-address ":50000"
一、SpringBoot整合
1 添加依赖
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.3.0</version>
</dependency>
<dependency>
<groupId>me.tongfei</groupId>
<artifactId>progressbar</artifactId><version>0.5.3</version>
</dependency><dependency>
<groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId>
<version>4.8.1</version>
</dependency>
2 yml
minio:endpoint: http://localhost:81accesskey: minioadminsecretKey: minioadmin
3 下载
public String downloadFile(String fileUrl, String saveUrl) {String fileName = "";HttpURLConnection httpUrl = null;byte[] buf = new byte[1024];int size = 0;try {URL url = new URL(fileUrl);httpUrl = (HttpURLConnection) url.openConnection();httpUrl.connect();BufferedInputStream bis = new BufferedInputStream(httpUrl.getInputStream());File file = new File(saveUrl);if (!file.exists()) {file.mkdirs();}String arrUrl[] = fileUrl.split("/");fileName = arrUrl[arrUrl.length - 1];FileOutputStream fos = new FileOutputStream(saveUrl + "/" + fileName);while ((size = bis.read(buf)) != -1) {fos.write(buf, 0, size);}fos.close();bis.close();} catch (IOException e) {e.printStackTrace();;}httpUrl.disconnect();return fileName;}
4 上传
public static void main(String[] args) throws IOException, NoSuchAlgorithmException, InvalidKeyException {try {MinioClient minioClient =MinioClient.builder().endpoint("http://192.168.18.128:9000").credentials("admin", "12345678").build();String bucketName = "userimage";boolean exists =minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build());if (!exists) {minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());}minioClient.uploadObject(UploadObjectArgs.builder().bucket(bucketName).object("小红.jpg").filename("小红.jpg").build());System.out.println("上传文件成功");} catch (MinioException e) {System.out.println("Error occurred: " + e);System.out.println("HTTP trace: " + e.httpTrace());}}
致谢:感谢达内支持
基于Minio实现分布式云存储相关推荐
- 区块链分布式云存储项目盘点
随着人类发展,产生了无数PB的数据,存储它的位置和方式的问题变得越来越重要.从内部部署存储迁移到云存储一直是过去十年的主题,而且这一趋势正在加速.但是现目前云存储都是由科技巨头主导到这个市场,这些公司 ...
- 什么是分布式_什么是分布式存储?分布式云存储有什么优势?
点击蓝色字关注 [悦好创富圈]! 一个出类拔萃的公众号 关注的人都发大财了 什么是分布式存储 分布式存储是数据存储技术.它通过网络使用企业中每台机器的磁盘空间.这些分散的存储资源构成了虚拟存储设备,数 ...
- 【重识云原生】第三章云存储3.5节——商用分布式云存储方案
<重识云原生系列>专题索引: 第一章--不谋全局不足以谋一域 第二章计算第1节--计算虚拟化技术总述 第二章计算第2节--主流虚拟化技术之VMare ESXi 第二章计算第3节--主流虚拟 ...
- 基于hadoop构建对象存储系统_基于Hadoop企业私有云存储平台的构建
量数据存储.数据规模易扩展性的要求. 关键词: 企业级用户:私有云:云存储: Hadoop :云计算:海量数据: HBase :元数据 中图分类号: TP 391 文献标志码: A Establish ...
- 基于FastDfs的分布式文件存储系统设计
前言 FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等,解决了大容量存储和负载均衡的问题.特别适合以文件为载体的在线服务 ...
- 基于云存储网关的Veeam备份归档上云方案
前言 面对数据可靠性和合规性要求的不断增长,只备份一份数据已经不能满足用户对于数据可靠性的需求.传统备份厂商的异地备份方案是将用户生产环境里的数据备份至不同机柜或者异地机房来保护数据,规避单机房存在的 ...
- 5G 来袭,数据暴增,新一代云存储平台如何承载?
随着5G.大数据.人工智能等新兴技术的发展,数据进一步大幅增长.IDC预计,到2025年,全球将有175 ZettaBytes的数据总量.与此同时,存储的可扩展性.容量等问题逐渐凸显,需要大规模的数据 ...
- Storj:区块链在云存储上的应用
写作背景 本人即将开始三年的计算机硕士学涯,目前研究方向是区块链与云存储的结合.在学习中了解到Storj Labs这家公司已经推出了比较完整的.以区块链为核心技术的分布式云存储服务:Storj.在对其 ...
- 论文:云存储区块链技术:系统文献综述
Blockchain Technology for Cloud Storage: A Systematic Literature Review 本文链接:https://download.csdn.n ...
最新文章
- python中的文件父路径怎么表达_如何在Python中访问父目录
- MATLAB实战系列(二)- 如何使用YALMIP检验数学模型的正确性?
- 【图像处理opencv】_图像锐化
- java容器类4:Queue深入解读
- liferay-ui:search-container 用法
- .9-浅析webpack源码之NodeEnvironmentPlugin模块总览
- vue基础4——自定义指令
- 理解运算符优先级(简单易懂,建议收藏)
- 整理vim格式回车变成空两格
- 细说业务逻辑(前篇)
- 发票上的计算机字体,发票代码和发票号码是什么字体
- wifi分析仪怎么看哪个信道好_专业的WiFi检测工具有哪些?如何解决wifi信号不好?...
- 数控车宏程序c语言,a类宏程序什么意思?a类宏程序编程入门
- 阎王爷:别总写代码,这130个网站比涨工资都重要!(建议收藏)
- 摆地摊赚钱方案全攻略
- uint8_t范围_uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型 - 大总结,看完全明白了...
- 【Python爬虫】你还在纠结选择哪个爬虫库嘛,全都拿来吧你
- 分享一下最近数学竞赛的获奖经历
- adonis命令serve
- java控制扬声器发声_Linux 控制扬声器发声
热门文章
- AndroidStudio中使用Git发布与更新,同步到本地(github关联)
- banq修复_banq的U盘如何?相比闪迪还有三星哪个最好?都是USB3.0
- Pyinstaller 打包exe 报错 failed to execute script XXX的一种解决方案
- python爬虫 环境配置
- C语言和汇编实现STM32F103点亮LED
- UiPath直播课程
- 层净高怎么算_房屋的层高和净高怎么算?你知道相关标准吗
- 浅谈双层玻璃的功效matlab代码,双层玻璃的功效-数学模型实验报告.doc
- 电子计算机使用的逻辑元件是电子管,智慧职教: ( ??)电子计算机使用的主要逻辑元件是电子管。...
- 五一回家的票买没?来看看“12306” 是如何支撑百万 QPS 的?