文章详情

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

请输入下面的图形验证码

提交验证

短信预约提醒成功

MinIO的介绍以及简单的使用

2023-10-26 07:07

关注

什么是MinIO

MinIO是在GUN Affero通用公共许可证 v3.0 下发布的高性能对象存储.他与AmazonS3云存储服务API兼容.使用MinIO为机器学习,分析和应用程序数据工作负载构建高性能基础架构.

MinIO是一个高兴能的对象存储,什么是对象存储(Object Storage Service),对象存储是支持海量用户远程访问的无限容量的廉价的存储系统.

它由桶(bucket,对应了windows中的文件夹),组成的目录结构,桶中直接存放对象,桶中是不能再创建桶的,但是可以创建文件夹

下载和启动本地MinIO

访问官网:https://docs.min.io/!

进入官网之后点击右上角的DownLoad 进入下载页面 可以选择对应系统的安装包

我这里下载了windows版本的

windows版本下载之后是只有minio.exe文件的 我们需要创建一个data文件将 然后在打开cmd进入到minio.exe所在的文件夹中 执行

minio server ./data

执行完毕之后就是这样的 我们现在就可以访问自己电脑上的MinIO了

地址: http://127.0.0.1:9000/

自习看之前的窗口 上面是有账号和密码的

RootUser: minioadmin

RootPass: minioadmin

进入首页后就是要创建桶了,点有上角的Create Bucket进行创建

创建好之后会自动跳转到这个界面

点Upload就可以直接上传文件了

上传后的文件我们要查看的话 选中对应的文件点击右边的Share生成链接然后就可以用别的浏览器进行访问了,但是这样有个问题,只有7天的有效期,如果我们想将文件暴露出去,而不是通过分享这个url来进行访问呢?

那么我们应该直接访问Minio的ip+端口/桶名称/文件名

也就是 http://192.168.51.102:9000/aaaa/7.jpg 这样去访问

但是页面是这样提示的,因为我们没有权限直接这样去访问这个资源

我们可以给他添加权限,首先进入Manager

点击 Access Rules

添加读取readOnly对应的权限是*即拥有所有权限

再去访问的时候就可以直接访问了

集成Java

好了 这个是在windows中使用 使用的 那么我们要如何在java中进行集成呢?

我这里使用了maven来操作

首先让我们导入坐标

    io.minio    minio    8.3.9    com.squareup.okhttp3    okhttp    4.9.0

Java代码编写上传文件到bucket中

public class FileUploader {  public static void main(String[] args) throws Exception{    try {      MinioClient minioClient =          //创建MinIO Client          MinioClient.builder()              .endpoint("http://localhost:9000")                //输入登录用户名和密码              .credentials("minioadmin", "minioadmin")              .build();       //判断我们要上传到的 bucket 是否存在      boolean found = minioClient.bucketExists(BucketExistsArgs.builder().bucket("huike-crm").build());      if (!found) {        minioClient.makeBucket(MakeBucketArgs.builder().bucket("aaaa").build());      } else {        System.out.println("Bucket 'aaaa' already exists.");      }      minioClient.uploadObject(UploadObjectArgs.builder()               //上传到那个桶中              .bucket("aaaa")              //指定上传MinIO中后叫什么名字              .object("10.jpg")              //指定上传的文件路径              .filename("C:\\Users\\Administrator\\Pictures\\Saved Pictures\\10.jpg")              .build());      System.out.println("SUCCESS!!!!");    } catch (MinioException e) {      System.out.println("Error occurred: " + e);      System.out.println("HTTP trace: " + e.httpTrace());    }  }}

详细的MinIO Java API 文档 不过这个全是英文的

https://min.io/docs/minio/linux/developers/java/API.html

我翻看了一下 找了几个会常用到的API

removeObject

用来删除桶中指定的文件的

// Remove object.需要在构建MinIO Client对象之后进行调用minioClient.removeObject(RemoveObjectArgs.builder().bucket("my-bucketname").object("my-objectname").build());

downloadObject

下载文件

minioClient.downloadObject(  DownloadObjectArgs.builder()  .bucket("my-bucketname")  .object("my-objectname")  .filename("my-object-file")  .build());

来源地址:https://blog.csdn.net/c1210283911/article/details/128994825

阅读原文内容投诉

免责声明:

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

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

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯