我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Minio使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Minio使用

MinIO 是在 GNU Affero 通用公共许可证 v3.0 下发布的高性能对象存储。它与 Amazon S3 云存储服务

API 兼容。使用 MinIO 为机器学习、分析和应用程序数据工作负载构建高性能基础架构。
MinIO是高性能对象存储,什么是对象存储(Object Storage Service),对象存储是支持海量用户远程访问的无限容量廉价存储系统,既然是存储系统。

它由桶(bucket,对应Windows下的文件夹),组成目录结构,桶中直接存放对象(Object,对应
Windwos下的文件),桶中不能再创建通,但是要能创建文件夹

参考官网上的内容,官网地址如下:https://docs.min.io/

Windows使用

一、下载和本地启动MinIO

  1. 下载MinIO,访问官网:https://docs.min.io/
  2. 将MinIO.exe 拷贝到自己的目录下去,并创建一个data目录
  3. 通过命令行启动Minio:minio server ./data
  4. 启动完成后,可以看到访问的路径 http://127.0.0.1:9000
  5. 使用提供的账号密码进行登录
    账号:minioadmin
    密码:minioadmin
    说明minio已经正常启动了
    在这里插入图片描述

二、MioIO的使用

由于我们已经了解到MinIO是由桶(bucket)组成的,相当于是文件夹
对应的应该先要创建通bucket
创建桶:创建名叫huike-crm的桶
先尝试通过MinIO的浏览器上传一个文件,点击copy拷贝生成分享的url
在这里插入图片描述
在这里插入图片描述
在浏览器里访问,可以看到上传的图片
可以看到图片里的内容,证明minio已经可以正常使用了
但是,存在一些问题,我们生成一个分享url的时候发现有一个有效期
也就是说我们生成的分享的url的有效期只有7天,过了这7天以后再想通过这个url来进行访问就会有问题

那么我们能否直接将上传上来的文件暴露出去,而不再需要通过分享的这个url来进行访问呢?
如果现在我们要直接访问我们的MinIO里的文件要如何访问
我们应该直接访问 Minio的ip+端口/桶名称/文件名
http://172.16.17.121:9000/huike-crm/java.png
我们在浏览器中尝试了一下,看到返回的数据的内容,没有权限
注意这里的权限的配置是在桶这一级别的,添加读取readOnly对应的权限是*即拥有所有权限
在这里插入图片描述
然后重新访问java.png,http://127.0.0.1:9000/huike-crm/Snipaste_2022-12-31_17-24-29.png 即可看到图片
在这里插入图片描述

Java访问MinIO

官网手册:https://min.io/docs/minio/linux/developers/java/API.html

1.先导入依赖

io.miniominio8.3.7

2.编写配置

2.1 编写配置文件

yml配置

# Miniio配置minio:  # minio服务所在的目标ip  endpoint: http://127.0.0.1  # 端口  port: 9000  # 登录时的账户  accessKey: minioadmin  # 密码  secretKey: minioadmin  # 存储的桶  bucketName: huike-crm

MinIO配置文件

@Data@Component@ConfigurationProperties(prefix = "minio")public class MinioConfig {    //ip地址    private String endpoint;    //端口号    private int port;    //账户名    private String accessKey;    //密码    private String secretKey;    //默认存储桶    private String bucketName;}

Controller层编写

@RestControllerpublic class CommonController extends BaseController {    @Autowired    private ISysFileService fileService;        @PostMapping("/common/upload")    public AjaxResult uploadFile(MultipartFile file) throws Exception {        return fileService.upload(file);    }}

Service层编写

@Service@Slf4jpublic class SysFileServiceImpl implements ISysFileService {    @Autowired    private MinioConfig minioConfig;        @Override    public AjaxResult upload(MultipartFile file) throws Exception {        try {            //判断文件是否是pdf格式            if (!file.getContentType().equals("application/pdf") ){                return AjaxResult.error("只能上传pdf文件");            }            //截取文件后缀然后拼接新的文件名 uuid + 后缀            String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().indexOf("."));            String newFileName = UUID.randomUUID().toString(true) + suffix;            //创建Minio的连接对象            MinioClient minioClient = MinioClient.builder()                    .endpoint(minioConfig.getEndpoint() + ":" + minioConfig.getPort())                    .credentials(minioConfig.getAccessKey(), minioConfig.getSecretKey())                    .build();            //判断文件存储的桶是否存在            boolean flag = minioClient.bucketExists(                    BucketExistsArgs.builder().bucket(minioConfig.getBucketName()).build()            );            //判断是否存在该桶            if (!flag) {                //不存在就创建                minioClient.makeBucket(                        MakeBucketArgs.builder().bucket(minioConfig.getBucketName()).build()                );            }            //上传到桶中的文件的路径 使用当前日期作为文件存储路径            String data = new SimpleDateFormat("yyyy/MM/dd").format(new Date()) + "/";            //操作文件,文件上传            minioClient.putObject(                    PutObjectArgs.builder().bucket(minioConfig.getBucketName()).object(data + newFileName).stream(file.getInputStream(), -1, 10485760).contentType(file.getContentType()).build());            //封装访问的url给前端 http://127.0.0.1:9000/桶名/路径/文件名            String url = minioConfig.getEndpoint() + ":" + minioConfig.getPort() + "/" + minioConfig.getBucketName() + "/" + data + newFileName;            //fileName /桶名/路径/文件名            String fileName = "/" + minioConfig.getBucketName() + "/" + data + newFileName;            AjaxResult success = AjaxResult.success();            success.put("url",url);            success.put("fileName",fileName);            return success;        } catch (MinioException e) {            System.out.println("Error occurred: " + e);            System.out.println("HTTP trace: " + e.httpTrace());        }        return null;    }}

来源地址:https://blog.csdn.net/qq_46062118/article/details/128507023

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Minio使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Minio使用

MinIO 是在 GNU Affero 通用公共许可证 v3.0 下发布的高性能对象存储。它与 Amazon S3 云存储服务 API 兼容。使用 MinIO 为机器学习、分析和应用程序数据工作负载构建高性能基础架构。 MinIO
2023-08-17

MinIO的安装与使用

MinIO的安装与使用 一、MinIO是什么?二、MinIO安装(centos7)2.1 下载MinIO2.2 启动MinIO2.3 修改配置2.4 编写启动脚本,以及加入到systemctl中 三、Springboot集成Mi
2023-08-18

linux下如何使用docker安装minio

目录docker 安装 mi编程客栈niodocker离线(升级)安装MINIO1.查看版本2.本地安装3.把包上传到服务器总结docker 安装 minio 1、拉取 minio 镜像 pull minio/minio 2、创建两个目录
2023-04-03

Minio与SpringBoot使用okhttp3问题解决

这篇文章主要介绍了Minio与SpringBoot使用okhttp3问题解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-11-13

linux下怎么使用docker安装minio

这篇文章主要介绍“linux下怎么使用docker安装minio”,在日常操作中,相信很多人在linux下怎么使用docker安装minio问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux下怎么使用d
2023-07-05

springboot中怎么使用minio存储容器

这篇文章主要为大家展示了“springboot中怎么使用minio存储容器”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“springboot中怎么使用minio存储容器”这篇文章吧。docker
2023-06-29
2023-09-07

Docker部署Minio (服务器上部署Minio)

Minio简介: MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件
2023-08-18

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录