前言

  • minio github 地址:https://github.com/minio/minio
  • minio 官网安装包下载地址:https://dl.min.io/server/minio/
  • minio 官方命令式下载地址:https://min.io/download#/linux

安装

Docker 安装

minio 官方命令式下载地址:https://min.io/download#/linux

docker run -di -p 9000:9000 -p 9001:9001 -v /mnt/data:/data minio/minio server /data --console-address ":9002"

命令式安装

wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
MINIO_ROOT_USER=admin MINIO_ROOT_PASSWORD=password ./minio server /mnt/data --console-address ":9001"

Java 操作 minio

Java 操作 minio 官方指南入门指南:https://docs.min.io/docs/java-client-quickstart-guide.html
Java 操作 minio 官方指南详细指南:https://docs.min.io/docs/java-client-api-reference.html

创建用户设置密码

package top.simba1949.util;import io.minio.*;
import io.minio.http.Method;
import io.minio.messages.Bucket;
import io.minio.messages.DeleteError;
import io.minio.messages.DeleteObject;
import io.minio.messages.Item;import java.io.File;
import java.io.FileInputStream;
import java.util.LinkedList;
import java.util.List;
import java.util.concurrent.TimeUnit;/*** @author anthony* @date 2022/6/2*/
public class MinioUtils {private static final String BUCKET_NAME = "test-bucket";private static final String ENDPOINT = "http://127.0.0.1:9000";private static final String ACCESS_KEY = "minioUserAdmin";private static final String SECRET_KEY = "12345678";static MinioClient minioClient = null;static {minioClient = MinioClient.builder().endpoint(ENDPOINT).credentials(ACCESS_KEY, SECRET_KEY).build();}/*** 桶的操作* 1.桶的命名规则:https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html*/public static void bucketOperate() throws Exception {// 判断桶是否存在,true 表示存在,false表示不存在boolean found = minioClient.bucketExists(BucketExistsArgs.builder().bucket(BUCKET_NAME).build());if (found) {System.out.println(BUCKET_NAME + " exists");} else {System.out.println(BUCKET_NAME + " does not exist");// 创建桶minioClient.makeBucket(MakeBucketArgs.builder().bucket(BUCKET_NAME).build());}// 查看桶的列表List<Bucket> buckets = minioClient.listBuckets();// 查询某个桶的所有信息Iterable<Result<Item>> results = minioClient.listObjects(ListObjectsArgs.builder().bucket(BUCKET_NAME).build());}/*** 桶中的对象操作*/public static void objectOperate() throws Exception {}/*** 桶中的对象操作——上传文件* 桶内的对象名称不能重复** @throws Exception*/public static void uploadObject() throws Exception {String filePath = "D:\\IDE\\Idea\\Workspace\\learn\\minio-learn\\src\\main\\resources\\java.jpeg";File file = new File(filePath);// 通过流上传FileInputStream fileInputStream = new FileInputStream(file);// objectSize 是对象的大小,// 如果对象大小未知,则将 -1 传递给 objectSize 并传递有效的 partSize,例如:10485760// 如果对象大小已知,则将 -1 传递给 partSize 以进行自动检测;// 上传未知文件大小PutObjectArgs putObjectArgs = PutObjectArgs.builder().bucket(BUCKET_NAME) // 桶名.object(file.getName()) // 上传到桶的对象名称.stream(fileInputStream, -1, 10485760).build();// 上传已知文件大小PutObjectArgs putObjectArgs2 = PutObjectArgs.builder().bucket(BUCKET_NAME) // 桶名.object(file.getName()) // 上传到桶的对象名称.stream(fileInputStream, file.length(), -1).build();// minioClient.putObject(putObjectArgs);// minioClient.putObject(putObjectArgs2);// 通过内容UploadObjectArgs uploadObjectArgs = UploadObjectArgs.builder().bucket(BUCKET_NAME).object(file.getName()) // 上传到桶的对象名称.filename(filePath) // 文件全路径.build();minioClient.uploadObject(uploadObjectArgs);}/*** 桶中的对象操作——移除文件** @throws Exception*/public static void removeObject() throws Exception {// 删除单个对象RemoveObjectArgs removeObjectArgs = RemoveObjectArgs.builder().bucket(BUCKET_NAME).object("java.jpeg").build();minioClient.removeObject(removeObjectArgs);// 删除多个对象List<DeleteObject> objects = new LinkedList<>();objects.add(new DeleteObject("my-objectname1"));objects.add(new DeleteObject("my-objectname2"));objects.add(new DeleteObject("my-objectname3"));RemoveObjectsArgs removeObjectsArgs = RemoveObjectsArgs.builder().bucket(BUCKET_NAME).objects(objects).build();Iterable<Result<DeleteError>> results = minioClient.removeObjects(removeObjectsArgs);for (Result<DeleteError> result : results) {DeleteError error = result.get();System.out.println("Error in deleting object " + error.objectName() + "; " + error.message());}}/*** 获取下载链接* @throws Exception*/public static void getPresignedObjectUrl() throws Exception {GetPresignedObjectUrlArgs getPresignedObjectUrlArgs = GetPresignedObjectUrlArgs.builder().method(Method.GET).bucket(BUCKET_NAME).object("java.jpeg").expiry(2, TimeUnit.MINUTES) // 设置链接过期时间,不设置的话是永久链接.build();String url = minioClient.getPresignedObjectUrl(getPresignedObjectUrlArgs);System.out.println(url);}/*** 下载* @throws Exception*/public static void downloadObject() throws Exception {DownloadObjectArgs downloadObjectArgs = DownloadObjectArgs.builder().bucket(BUCKET_NAME).object("java.jpeg").filename("D:\\IDE\\Idea\\Workspace\\learn\\minio-learn\\my-object-file.jpeg") // 设置下载文件的路径.build();minioClient.downloadObject(downloadObjectArgs);}/*** 获取对象的元数据信息** @throws Exception*/public static void stateObject() throws Exception {StatObjectArgs statObjectArgs = StatObjectArgs.builder().bucket(BUCKET_NAME).object("java.jpeg").build();StatObjectResponse statObjectResponse = minioClient.statObject(statObjectArgs);}
}

minio下载安装与API操作相关推荐

  1. java day47【redis概念 、下载安装 、 命令操作 、持久化操作 、使用Java客户端操作redis】...

    第一章  Redis 1. 概念: redis是一款高性能的NOSQL系列的非关系型数据库 1.1.什么是NOSQL NoSQL(NoSQL = Not Only SQL),意即"不仅仅是S ...

  2. 分享Everything下载安装地址和操作 步骤

    1.先上网址  https://www.voidtools.com/zh-cn/downloads/#language 2.选择适合自己的版本.我的电脑是64位的,所以直接选择安装版本,就是exe可执 ...

  3. SVN下载,安装,配置,常用操作 svn教程

    首先在百度搜索并下载 TortoiseSVN 推荐从官网下载,软件分为32位和64位版本,下载时请根据自己的系统位数进行下载: 安装过程: 1.下载软件后,双击程序进行安装,点击"Next& ...

  4. Robei下载安装及入门操作

    目录 一.Robei下载及安装 1.下载及安装 2.注册 二.入门操作 1.新建模块文件 2.新建测试文件 一.Robei下载及安装 1.下载及安装 官网下载地址 新版本软件仅支持 64 位 电脑.解 ...

  5. sqlite数据库下载安装和初步操作和所遇到的问题near sqlite3:syntax error

    1.下载sqlite数据库:http://www.sqlite.org/download.html 如果是在window上安装需要在 Windows 区下载预编译的二进制文件.如图下载下载 sqlit ...

  6. fiddler的下载安装和初步操作

    fiddler简介 Fiddler是一款HTTP协议调试代理工具,它能够抓取记录本机所有HTTP(S)请求.其运行机制其实就是本机 127.0.0.1上监听8888端口的HTTP代理 Fiddler无 ...

  7. Powerpivot PowerBI相关组件下载安装(附操作截图)

    加载方式:com加载项加载方法: 点击Excel界面[文件]→[选项]→[加载项]→[COM加载项]→[转到] Excel2013加载PowerView Excel216PowerQuery不需要加载 ...

  8. Xamarin.Forms教程下载安装Windows版的Xamarin开发工具

    Xamarin.Forms教程下载安装Windows版的Xamarin开发工具 下载安装Windows版的Xamarin开发工具 本节将讲解如何下载并安装Windows版的Xamarin开发工具. 下 ...

  9. SVN(subversion )服务端和客户端的下载安装使用

    目录 一.服务端下载 二.客户端下载 三.服务端的安装 四.客户端的安装 五.windows环境下如何给intelij idea配置SVN 六.IntelliJ IDEA 使用SVN提交.更新.查看历 ...

最新文章

  1. 随风摆动效果_扫盲贴!节目中的AR虚拟效果,使用物理引擎后有什么不同?
  2. 玩点不一样的,如何使用MATLAB实现批量修改文件后缀名,文件名,批量复制文件
  3. 小程序在输入npm命令_小程序中使用npm
  4. 正确理解hibernate的inverse属性
  5. oracle outln用户,Oracle用户解锁
  6. YolactEdge:首个开源边缘设备上的实时实例分割(Jetson AGX Xavier: 30 FPS)
  7. S50 14443卡和15693卡 读写研究
  8. xp可以装java6不_XP系统XMind 6中缺失安装java环境
  9. python变量域名_想尝试使用python进行域名分析,可是没有接触过python,想请教请教。...
  10. 3.2 如何判断Java对象的存活
  11. Atiitt 软件设计之道 attilax著 1. 总概念 隶属于软件工程。。 2 2. 需求分析 3 3. 设计分类 3 3.1. 按照力度 总体设计架构设计 概要设计 详细设计 3 3.2.
  12. 随机生成中文名、性别、手机号、住址、email的java代码
  13. 英语不好、数学不好能自学编程吗?自学编程出路如何?老程告诉你
  14. 三个工具测试网络速度
  15. dnw linux 内核,神器DNW2 FOR LINUX!
  16. cocos creator切换场景闪退_#Cocos Creator# 为什么音乐音效在场景切换的时候自动停止了?...
  17. nyist 第二次招新赛 I 董学姐与朱学姐的爱恨情仇
  18. visual studio(vs)2022如何在解决方案中自动配置文件路径(如何向解决方案中批量添加文件)(如何将修改路径之后的的源文件添加到解决方案中)
  19. Java使用@Value获取不到值
  20. EXCEL里如何知道某种颜色的ColorIndex的值

热门文章

  1. 突然断电对oracle的影响,Oracle数据库之由于突然断电造成oracle数据库的部分clob字段值变为(损毁)...
  2. AH8669_DC650V/AC265V高压IC,输出5V12V24V500MA电源芯片方案
  3. 新生儿黄疸警惕蚕豆病
  4. 泛微OA发送邮件【E8、E9】
  5. sql中以sa命名的用户名无法使用,错误码1845
  6. 2016-2017寒假社会实践报告
  7. 一文查看公信宝查封始末,CEO此前曾表示获利数千万
  8. 激荡10年,珍贵的毕业礼物
  9. Latex: 减少图与文字之间的空白间隙
  10. 测试开发该如何在团队中推广新工具、新技术(深度好文)