使用minio进行文件存储

news2024/12/23 14:23:48

title: 使用Minio存储文件对象

一. Docker拉取镜像(确保自己的服务器已经安装Docker)

docker pull minio/minio

二. 启动一个miniio容器

docker run --name minio -p 9090:9000 -p 9999:9999 -d \
--restart=always -e \
"MINIO_ROOT_USER=minio" \
-e "MINIO_ROOT_PASSWORD=minio123" \
-v /home/minio/data:/data \
-v /home/minio/config:/root/.minio minio/minio server /data --console-address '0.0.0.0:9999'

账号是minio; 密码是minio123

三. 访问minio管理界面

端口90909999(确保在服务器放行相关端口即可访问)

image-20221118102023717

点击 create a Bucket 创建一个bucket(桶), 这里的Bucket 我们可以理解为文件存储的目录

输入 bucket name ,点击create bucket 。可以通过 upload 上传文件到bucket中。

四. Java 上传文件到minio

  1. 导入依赖

    <dependency>
        <groupId>io.minio</groupId>
        <artifactId>minio</artifactId>
        <version>7.1.0</version>
    </dependency>
    
  2. 测试类(需要输入自己的账号密码和IP)

    import io.minio.MinioClient;
    import io.minio.ObjectWriteResponse;
    import io.minio.PutObjectArgs;
    import io.minio.errors.MinioException;
    
    import java.io.File;
    import java.io.FileInputStream;
    
    /**
     * @author lqs
     * @date 2022/11/18 9:53
     */
    public class MinioTest {
        public static void main(String[] args) throws Exception {
            try {
    
                // 构建一个Minio客户端
                MinioClient minioClient = MinioClient.builder()
                        //创建容器时指定的账号
                        .credentials("账号", "密码")
                        //上传地址
                        .endpoint("http://IP:9090").build();
    
                File file = new File("C:\\Users\\coderyeah\\Desktop\\welt.jpg");
    
                PutObjectArgs putObjectArgs = PutObjectArgs.builder()
                        .object("welt.jpg")    //文件名
                        .contentType("image/jpeg")    //文件类型
                        .bucket("bucket-test")  //存储目录名
                        .stream(new FileInputStream(file), file.length(), -1).build(); //文件流,以及大小,-1代表不分片
    
                //执行上传
                ObjectWriteResponse objectWriteResponse = minioClient.putObject(putObjectArgs);
                System.out.println("上传结果 " + objectWriteResponse);
                //上传之后的文件地址是:
                String filePath = "http://IP:9090/bucket-test/welt.jpg";
            } catch (MinioException e) {
                System.out.println("Error occurred: " + e);
            }
        }
    }
    

五. 配置权限

如果我们需要我们上传的文件可以被匿名用户访问,那么需要添加访问权限:找到文件存储目录,点击manager

image-20221118103113051

然后找到access Rules添加访问规则如下:

image-20221118103150617

然后再访问路径:http://IP:9090/bucket-test/welt.jpg
ules添加访问规则如下:

[外链图片转存中…(img-5A8726lu-1668738774381)]

然后再访问路径:http://IP:9090/bucket-test/welt.jpg

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

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

相关文章

“码二代”从喜欢益智游戏到找最短路线,编程思维是如何培养的?

前言 1842年&#xff0c;“数字女王”的阿达洛芙莱斯&#xff08;Ada Lovelace&#xff09;编写了历史上首款电脑程序&#xff0c;至今已有200多年的历史。 &#xff08;文末送读者福利&#xff09; 在这个特别的日子里&#xff0c;我们要为大家介绍的是一个来自小小“码二代…

线性表详细讲述(带图)

文章目录线性表---顺序表和链表1.线性表2.顺序表2.1概念2.2 静态顺序表与动态顺序表2.3接口的实现2.3.1顺表的初始化2.3.2扩容2.3.3顺序表尾插2.3.4顺序表的尾删2.3.5顺序表的头插2.3.6顺序表的头删2.3.7顺序表的查找2.3.8顺序表的任意位置插入2.3.9顺序表的任意位置删除2.3.10…

[附源码]java毕业设计民宿网站管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【DL】linux服务器上安装Anaconda3

1.本地连接远程服务器 使用MobaXterm连接远程服务器 2.下载Anaconda3安装包 安装包下载地址 https://www.anaconda.com/ 因为我们要在linux服务器上安装,因此选择linux安装包 下载完成以后,将安装包拖进服务器 3.安装Anaconda3 打开终端,输入以下命令,目的是赋权限 c…

Vue路由

参考文献&#xff1a;Vue中的路由 一、路由理解&#xff1a; 一个路由就是一组映射关系&#xff08;key&#xff0c;value&#xff09;&#xff0c;多个路由需要路由器&#xff08;router&#xff09;进行管理。其中key是路径&#xff0c;value是组件。作用&#xff1a;设定访…

【C++笔试强训】第二十六天

&#x1f387;C笔试强训 博客主页&#xff1a;一起去看日落吗分享博主的C刷题日常&#xff0c;大家一起学习博主的能力有限&#xff0c;出现错误希望大家不吝赐教分享给大家一句我很喜欢的话&#xff1a;夜色难免微凉&#xff0c;前方必有曙光 &#x1f31e;。 &#x1f4a6;&a…

springboot security 集成 cas 问题 No subject alternative names present

springboot security 集成 cas 问题 No subject alternative names present前言一、问题1.实际问题二、大海捞针1.星星之火2.通用方法啰嗦一句解决2.新建三个类配置文件修改前言 场景&#xff1a; 在一次springboot security 集成 cas开发中&#xff0c;代码报错&#xff1a;j…

轻松掌握 jQuery 基础

文章目录&#x1f496; 前言&#x1f496; jQuery简介&#x1f496; jQuery安装及使用&#x1f496; jQuery的$&#x1f49e; 选择器&#x1f49e; 功能函数前缀&#x1f49e; window.onload&#x1f49e; 创建DOM元素&#x1f496; 投票快捷键&#x1f496; 前言 随着JavaScri…

手机怎么把图片转换成Word?这个小妙招大家要学会

使用手机怎么把图片转换成Word文档呢&#xff1f;大家在使用图片文件来办公的时候&#xff0c;有的图片里面有成段成段的文字&#xff0c;不仅阅读起来很不方便&#xff0c;还很难修改内容&#xff0c;这时候我们可以将图片里的内容转换成Word文档&#xff0c;就可以解决这一问…

利用gdal把多张tif合成一张大图

目录gdalwarpgdalbuildvrt有时候从网站下载遥感影像时&#xff0c;因为选定区域的遥感影像太大&#xff0c;下载后往往是自动就给切片下载了。特别是当选定区域特别大时&#xff0c;最后形成的切片会有几十甚至上百小块&#xff0c;且这些小块都没有重叠的地方&#xff0c;虽然…

MySQL8.0优化 - 事务的ACID特性

文章目录学习资料事务事务的ACID特性原子性&#xff08;atomicity&#xff09;一致性&#xff08;consistency&#xff09;隔离性&#xff08;isolation&#xff09;持久性总结学习资料 【MySQL数据库教程天花板&#xff0c;mysql安装到mysql高级&#xff0c;强&#xff01;硬…

以梦为马,不负韶华|电巢科技延安大学飞鹰计划实习班精彩回顾

时光流淌无声&#xff0c;昨天仿佛还初次见面&#xff0c;今天却又是一年的尾声。你是否结交到亲密的小伙伴&#xff1f;你是否感受到团队合作的魅力&#xff1f;你是否在延大这片沃土得到成长&#xff1f;假如你还没答案&#xff0c;那么看看其他人的回答。 在延安大学&#x…

node深度打印对象

Node 深度打印对象 在node中打印对象类型时&#xff0c;如果对象的层级过深&#xff0c;就会出现这样的问题 要想显示里面的值&#xff0c;就要通过JSON.stringify方法 这样打印出来不易于阅读且不美观&#xff0c;可以设置参数的方式来格式化JSON console.log(JSON.string…

【计算机组成原理】第三章单元测试

1.单选(2分) ‎执行算术右移指令的操作过程是 ‍A.操作数的符号位不变&#xff0c;各位顺次右移1位&#xff0c;符号位拷贝至最高数据位 B.操作数的符号位填0&#xff0c;各位顺次右移1位 C.操作数的符号位填1&#xff0c;各位顺次右移1位 D.进位标志移至符号位&#xff0…

九、Vue3基础之九

文章目录一、可视化1.1 接口API 也是后端项目1.2 前端项目开始1.2.1 echarts二、Vue3 Router2.1 Router的初步应用2.2 路由模式、Router原理2.3 命名路由、编程式导航2.4 历史记录2.5 路由传参2.6 嵌套路由2.7 命名视图2.8 重定向、别名2.9 导航守卫&#xff08;前置守卫&#…

SpringBoot整合dubbo(三)

整合nacos作为注册中心 一、下载nacos&#xff1a;Release 2.2.0-BETA (Oct 28, 2022) alibaba/nacos GitHub 1.1、直接启动时报错&#xff0c;需要指定单例启动&#xff1a;startup.cmd -m standalone 启动后在http://localhost:8848/nacos/index.html访问&#xff0c;默认…

Revit中记忆快速修改未识别的梁及“快速生成过梁”

一、Revit中记忆快速修改未识别的梁 我们在使用红瓦建模大师对结构梁进行翻模时&#xff0c;往往会出现梁未识别的情况(如图 1)&#xff0c;这需要我们人工手动去修改。图中这一跨梁的命名应该同 KL5 (2B)&#xff0c;只是尺寸不同&#xff0c;只需要将它替换成前一跨梁然后复制…

计算机网络—概述

互联网 互联网又称国际网络&#xff0c;指的是网络与网络之间所串连成的庞大网络&#xff0c;这些网络以一组通用的协议相连&#xff0c;形成逻辑上的单一巨大国际网络。简单的说&#xff0c;网络把主机连接起来&#xff0c;互联网就是把多种不同的网络连接起来。 ISP 互联…

分布式天花板?阿里百万架构师的ZK+Dubbo笔记,颠覆认知

蓦然回首自己做开发已经十年了&#xff0c;这十年中我获得了很多&#xff0c;技术能力、培训、出国、大公司的经历&#xff0c;还有很多很好的朋友。但再仔细一想&#xff0c;这十年中我至少浪费了五年时间&#xff0c;这五年可以足够让自己成长为一个优秀的程序员&#xff0c;…

Java语言知识大盘点(期末复习)一

&#x1f339;作者:云小逸 &#x1f4dd;个人主页:云小逸的主页 &#x1f4dd;Github:云小逸的Github &#x1f91f;motto:要敢于一个人默默的面对自己&#xff0c;强大自己才是核心。不要等到什么都没有了&#xff0c;才下定决心去做。种一颗树&#xff0c;最好的时间是十年前…