MinioAPI浅入及问题

bucketExists(BucketExistsArgs args) boolean

判断桶是否存在 返回boolean

boolean gxshuju = minioClient.bucketExists(BucketExistsArgs.builder()
.bucket(bucketName)
.build());
if (!gxshuju) {
minioClient.makeBucket(MakeBucketArgs.builder()
.bucket("gxshuju")
// .objectLock(true)
.build());
System.out.println(bucketName + "is not exists");
} else
System.out.println(bucketName + "is exists");

makeBucket(MakeBucketArgs args) void

创建桶 bucket(bucketName) objectLock(boolean)是否锁定

 minioClient.makeBucket(MakeBucketArgs.builder()
.bucket("gxshuju")
// .objectLock(true)
.build());

uploadObject(UploadObjectArgs args) ObjectWriteResponse

上传文件 bucket(bucketName)

object(bucket路径(路径斜杠必须为‘/’)->文件名)

filename(上传文件路径,即本地路径)

contentType(String 文件类型)

minioClient.uploadObject(UploadObjectArgs.builder()
.bucket(bucketName)
.object("同名测试/111.jpg")
.filename("C:\\Users\\lenovo\\Desktop\\111.jpg")
.build());

deleteBucketEncryption(DeleteBucketEncryptionArgs args) void

删除桶的加密配置Encryption bucket(bucketName)

minioClient.deleteBucketEncryption(DeleteBucketEncryptionArgs.builder()
.bucket("gxshuju")
.build());

deleteBucketLifecycle(DeleteBucketLifecycleArgs args) void

删除桶的生命周期配置 bucket(bucketName)

字面意思 不做解释

deleteBucketTags(DeleteBucketTagsArgs args) ..

deleteBucketPolicy(DeleteBucketPolicyArgs args) ..

deleteBucketReplication(DeleteBucketReplicationArgs args) ..

deleteBucketNotification(DeleteBucketNotificationArgs args) ..

deleteObjectLockConfiguration(DeleteObjectLockConfigurationArgs args) ..

minioClient.deleteBucketLifecycle(DeleteBucketLifecycleArgs.builder()
.bucket("gxshuju")
.build());

getBucketEncryption(GetBucketEncryptionArgs args) SseConfiguration

获取桶的加密配置

getBucketLifecycle(GetBucketLifecycleArgs args) LifecycleConfiguration

getBucketNotification(GetBucketNotificationArgs args) NotificationConfiguration

getBucketPolicy(GetBucketPolicyArgs args) String

getBucketReplication(GetBucketReplicationArgs args) ReplicationConfiguration

getBucketTags(GetBucketTagsArgs args) Tags

getBucketVersioning(GetBucketVersioningArgs args) VersioningConfiguration

getObjectLockConfiguration(GetObjectLockConfigurationArgs args) ObjectLockConfiguration

SseConfiguration gxshuju1 = minioClient.getBucketEncryption(GetBucketEncryptionArgs.builder()
.bucket("gxshuju")
.build());

listBuckets() List

获取所有桶

bucket.creationDate() 桶的创建日期

bucket.name() 桶的名称

List<Bucket> buckets = minioClient.listBuckets();
buckets.forEach(bucket -> {
System.out.println(bucket.creationDate().toLocalDateTime() + "," + bucket.name());
});

removeBucket(RemoveBucketArgs args) void

删除桶

minioClient.removeBucket(RemoveBucketArgs.builder().bucket("jjj").build());

setBucketEncryption(SetBucketEncryptionArgs args)

设置一个桶的加密配置

setBucketLifecycle(SetBucketLifecycleArgs args)

setBucketNotification(SetBucketNotificationArgs args)

setBucketPolicy(SetBucketPolicyArgs args)

setBucketReplication(SetBucketReplicationArgs args)

setBucketTags(SetBucketTagsArgs args)

setBucketVersioning(SetBucketVersioningArgs args)

setObjectLockConfiguration(SetObjectLockConfigurationArgs args)

copyObject(CopyObjectArgs args) ObjectWriteResponse

复制对象 sse(加密方式)

下例为复制aaa空间下的Saved Pictures内的001420yp398.jpg到bbb空间给定名称001420yp398.jpg

minioClient.copyObject(CopyObjectArgs.builder()
.bucket("bbb")
.object("001420yp398.jpg")
.source(CopySource.builder()
.bucket("aaa")
.object("Saved Pictures/001420yp398.jpg")
.build())
.build());

deleteObjectTags(DeleteObjectTagsArgs args) void

删除对象标签 删除aaa空间的xxxx.xls附带的标签

minioClient.deleteObjectTags(DeleteObjectTagsArgs.builder()
.bucket("aaa")
.object("xxxx.xls")
.build());

disableObjectLegalHold(DisableObjectLegalHoldArgs args)

enableObjectLegalHold(EnableObjectLegalHoldArgs args)

minioClient.disableObjectLegalHold(DisableObjectLegalHoldArgs.builder()
.bucket("my-bucketName")
.object("my-objectName")
.build());

downloadObject(DownloadObjectArgs args)

下载文件 sse(加密配置) 加密下载 filename(需指定到文件)

minioClient.downloadObject(DownloadObjectArgs.builder()
.bucket("aaa")
.object("Saved Pictures/001420yp398.jpg")
.filename("F:/aaa.jpg")
.build());

uploadSnowballObjects(UploadSnowballObjectsArgs args)

多文件上传

List<SnowballObject> objects = new ArrayList<>();
objects.add(
new SnowballObject(
"C:\\Users\\lenovo\\Desktop\\xxxx.xls",
new ByteArrayInputStream("hello".getBytes(StandardCharsets.UTF_8)),
5,
null));
objects.add(
new SnowballObject(
"C:\\Users\\lenovo\\Desktop\\新建文本文档.txt",
new ByteArrayInputStream("java".getBytes(StandardCharsets.UTF_8)),
4,
null));
minioClient.uploadSnowballObjects(UploadSnowballObjectsArgs.builder()
.bucket("bbb")
.objects(objects)
.build());

removeObject(RemoveObjectArgs args)

删除对象

minioClient.removeObject(RemoveObjectArgs.builder().bucket("aaa").object("xxxx.xls").build());

statObject(StatObjectArgs args) StatObjectResponse

获取对象的对象信息和元数据

StatObjectResponse bbb = minioClient.statObject(StatObjectArgs.builder()
.bucket("bbb")
.object("xxx.jpg")
.build());
System.out.println(bbb);

listenBucketNotification(ListenBucketNotificationArgs args)

listObjects(ListObjectsArgs args) Iterable<Result>

列出桶的对象

composeObject(ComposeObjectArgs args)

removeObjects(RemoveObjectsArgs args)

删除多个对象

Minio依赖冲突

An attempt was made to call a method that does not exist. The attempt was made from the following location:

    io.minio.S3Base.<clinit>(S3Base.java:105)

The following method did not exist:

    okhttp3.RequestBody.create([BLokhttp3/MediaType;)Lokhttp3/RequestBody;

The method's class, okhttp3.RequestBody, is available from the following locations:

    jar:file:/D:/repository/com/squareup/okhttp3/okhttp/3.14.9/okhttp-3.14.9.jar!/okhttp3/RequestBody.class

The class hierarchy was loaded from the following locations:

    okhttp3.RequestBody: file:/D:/repository/com/squareup/okhttp3/okhttp/3.14.9/okhttp-3.14.9.jar

Action:

Correct the classpath of your application so that it contains a single, compatible version of okhttp3.RequestBody

因为minio底层要依赖okhttp进行和minio服务端进行通信,由于项目中多个依赖底层都依赖了不同版本的okhttp,导致这里的okhttp因版本不同,某些方法不可用,尝试降级minio的版本。

如果要用最新版,请加入下面依赖:

		<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.9.0</version>
</dependency>

MinioAPI浅入及问题的更多相关文章

  1. 浅入浅出EmguCv(三)EmguCv打开指定视频

    打开视频的思路跟打开图片的思路是一样的,只不过视频是由一帧帧图片组成,因此,打开视频的处理程序有一个连续的获取图片并逐帧显示的处理过程.GUI同<浅入浅出EmguCv(二)EmguCv打开指定图 ...

  2. 浅入浅出EmguCv(一)OpenCv与EmguCv

    最近接触计算机视觉方面的东西,于是准备下手学习opencv,从官网下载windows的安装版,配置环境,一系列步骤走完后,准备按照惯例弄个HelloWord.也就是按照网上的教程,打开了那个图像处理领 ...

  3. 浅入深出之Java集合框架(上)

    Java中的集合框架(上) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,如果已经有java基础的小伙伴可以直接跳到<浅入深出之Java集合框架 ...

  4. 浅入深出之Java集合框架(中)

    Java中的集合框架(中) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,如果已经有java基础的小伙伴可以直接跳到<浅入深出之Java集合框架 ...

  5. 浅入深出之Java集合框架(下)

    Java中的集合框架(下) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,哈哈这篇其实也还是基础,惊不惊喜意不意外 ̄▽ ̄ 写文真的好累,懒得写了.. ...

  6. 浅入深出Vue:环境搭建

    浅入深出Vue:环境搭建 工欲善其事必先利其器,该搭建我们的环境了. 安装NPM 所有工具的下载地址都可以在导航篇中找到,这里我们下载的是最新版本的NodeJS Windows安装程序 下载下来后,直 ...

  7. 浅入深出Vue:工具准备之PostMan安装配置及Mock服务配置

    浅入深出Vue之工具准备(二):PostMan安装配置 由于家中有事,文章没顾得上.在此说声抱歉,这是工具准备的最后一章. 接下来就是开始环境搭建了~尽情期待 工欲善其事必先利其器,让我们先做好准备工 ...

  8. 浅入深出Vue:工具准备之WebStorm安装配置

    浅入深出Vue之工具准备(一):WebStorm安装配置 工欲善其事必先利其器,让我们先做好准备工作吧 导航篇 WebStorm安装配置 所有工具的下载地址都可以在导航篇中找到,这里我们下载的是最新版 ...

  9. 浅入深出Vue系列

    浅入深出Vue导航 导航帖,直接点击标题即可. 文中所有涉及到的资源链接均在最下方列举出来了. 前言 基础篇 浅入深出Vue:工具准备之WebStorm搭建及配置 浅入深出Vue之工具准备(二):Po ...

  10. 浅入深出Vue:前言

    浅入深出Vue系列文章 之前大部分是在做后端,后来出于某些原因开始接触Vue.深感前端变化之大,各种工具.框架令人眼花缭乱.不过正是这些变化,让前端开发更灵活. 博主在刚开始时,参考官网的各个步骤以及 ...

随机推荐

  1. 记一次Linux光盘救援

    最近遇到一个zz把/etc/profile改坏了导致系统起不来,所以复习一下光盘救援 工具:vm-workstation,centos6 原系统盘起不来后,插入有救援工具的系统盘后 按照提示进入she ...

  2. iNeuOS工业互联网操作系统,面向4个领域颁发第一批技术认证资质

    为了更好的紧密合作.利益多赢和共建生态.iNeuOS工业互联网操作系统面向:仪器仪表.双碳环保.核能科学与工程和钢铁冶金领域颁发第一批技术认证资质,一共21名同志在项目实施过程中表现突出,从iNeuO ...

  3. Windows LDAP加固之LDAP签名

    微软计划于2020年1月推出补丁更新,启用LDAP签名.虽然目前版本的操作系统已经包含了这个功能,但是微软并没有将它启用.随着时间推移,网络上的威胁越来越多.凭据重放和中间人攻击在LDAP的攻击中显得 ...

  4. 《Java基础——抽象与接口》

    Java基础--抽象与接口       一.抽象: 规则: 关键字 abstract 修饰的类称为抽象类. 子类通过关键字extends实现继承. 关键字 abstract 修饰的方法称为抽象方法,抽 ...

  5. KVM常用命令及配置文件

    1.查看虚拟机配置文件 [root@KVM tmp]# ls /etc/libvirt/qemu/ damowang.xml networks [root@KVM tmp]# ls /etc/libv ...

  6. .NET 反向代理 YARP 代理 GRPC

    前面的 YARP 文档中,介绍了怎么去代理 http,和如何根据域名转发,而在现在微服务的应用是越来越来多了,服务间的调用依靠 http 越来越不现实了,因为 http 多次握手的耗时越发的影响应用的 ...

  7. C++面向对象编程之point-like classes的智能指针和迭代器、function-like classes即仿函数

    1.智能指针 智能指针里面包含其他指针的形式和 委托 感觉比较像; 智能指针一定都需要重载 * 和 -> 操作符 ; 这个符号它作用后还能再继续作用下去; 2.迭代器: 这里主要关注 * 和 - ...

  8. Upscayl,免费开源的 AI 图像增强软件

    有的时候我们找遍了全网却难以找到一张模糊图片的原图,这时候我们想如果能够一键将图片变成高清的就好了.其实这正是计算机视觉的一大研究反向--图形增强,通过AI计算将模糊的图片增强,将几百kb的低像素图片 ...

  9. [Android开发学iOS系列] iOS写UI的几种方式

    [Android开发学iOS系列] iOS写UI的几种方式 作为一个现代化的平台, iOS的发展也经历了好几个时代. 本文讲讲iOS写UI的几种主要方式和各自的特点. iOS写UI的方式 在iOS中写 ...

  10. 驱动开发:内核枚举PspCidTable句柄表

    在上一篇文章<驱动开发:内核枚举DpcTimer定时器>中我们通过枚举特征码的方式找到了DPC定时器基址并输出了内核中存在的定时器列表,本章将学习如何通过特征码定位的方式寻找Windows ...