MinioAPI浅入及问题
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浅入及问题的更多相关文章
- 浅入浅出EmguCv(三)EmguCv打开指定视频
打开视频的思路跟打开图片的思路是一样的,只不过视频是由一帧帧图片组成,因此,打开视频的处理程序有一个连续的获取图片并逐帧显示的处理过程.GUI同<浅入浅出EmguCv(二)EmguCv打开指定图 ...
- 浅入浅出EmguCv(一)OpenCv与EmguCv
最近接触计算机视觉方面的东西,于是准备下手学习opencv,从官网下载windows的安装版,配置环境,一系列步骤走完后,准备按照惯例弄个HelloWord.也就是按照网上的教程,打开了那个图像处理领 ...
- 浅入深出之Java集合框架(上)
Java中的集合框架(上) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,如果已经有java基础的小伙伴可以直接跳到<浅入深出之Java集合框架 ...
- 浅入深出之Java集合框架(中)
Java中的集合框架(中) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,如果已经有java基础的小伙伴可以直接跳到<浅入深出之Java集合框架 ...
- 浅入深出之Java集合框架(下)
Java中的集合框架(下) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,哈哈这篇其实也还是基础,惊不惊喜意不意外 ̄▽ ̄ 写文真的好累,懒得写了.. ...
- 浅入深出Vue:环境搭建
浅入深出Vue:环境搭建 工欲善其事必先利其器,该搭建我们的环境了. 安装NPM 所有工具的下载地址都可以在导航篇中找到,这里我们下载的是最新版本的NodeJS Windows安装程序 下载下来后,直 ...
- 浅入深出Vue:工具准备之PostMan安装配置及Mock服务配置
浅入深出Vue之工具准备(二):PostMan安装配置 由于家中有事,文章没顾得上.在此说声抱歉,这是工具准备的最后一章. 接下来就是开始环境搭建了~尽情期待 工欲善其事必先利其器,让我们先做好准备工 ...
- 浅入深出Vue:工具准备之WebStorm安装配置
浅入深出Vue之工具准备(一):WebStorm安装配置 工欲善其事必先利其器,让我们先做好准备工作吧 导航篇 WebStorm安装配置 所有工具的下载地址都可以在导航篇中找到,这里我们下载的是最新版 ...
- 浅入深出Vue系列
浅入深出Vue导航 导航帖,直接点击标题即可. 文中所有涉及到的资源链接均在最下方列举出来了. 前言 基础篇 浅入深出Vue:工具准备之WebStorm搭建及配置 浅入深出Vue之工具准备(二):Po ...
- 浅入深出Vue:前言
浅入深出Vue系列文章 之前大部分是在做后端,后来出于某些原因开始接触Vue.深感前端变化之大,各种工具.框架令人眼花缭乱.不过正是这些变化,让前端开发更灵活. 博主在刚开始时,参考官网的各个步骤以及 ...
随机推荐
- Python 第五次实验
[1] (程序设计)编写程序,将二维列表数据写入 CSV文件(命名为"out.csv"),用逗号隔开.二维列表如下:[['Name','Age','Gender'], ['Bob' ...
- 聊聊单点登录(SSO)中的CAS认证
SSO介绍 背景 随着企业的发展,一个大型系统里可能包含 n 多子系统, 用户在操作不同的系统时,需要多次登录,很麻烦,我们需要一种全新的登录方式来实现多系统应用群的登录,这就是单点登录. web 系 ...
- ProxySQL配置之MySQL服务器配置
备注:文章编写时间201904-201905期间,后续官方在github的更新没有被写入 MySQL服务器配置 [MySQL Server Configuration] 一.在ProxySQL中配置后 ...
- 阿里云下配置keepalive,利用HAVIP实现HA
注:这篇文章参考网络,有些称呼都变了,比如阿里云上的现在是弹性ip 包括阿里云在内的很多云环境,因为不支持浮动IP广受诟病.目前阿里云在VPC网络下发布了HAVIP,能够实现arp宣告IP.这样也就让 ...
- 回滚Deployment控制器下的应⽤发布
若因各种原因导致滚动更新⽆法正常进⾏,如镜像⽂件获取失败."⾦丝雀"遇险等,则应该将应⽤回滚到之前的版本,或者回滚到由⽤户指定的历史记录中的版本. Deployment控制器的回滚 ...
- 安全强化Linux 服务器的七个步骤
这篇入门文章将向你介绍基本的 Linux 服务器安全知识.虽然主要针对 Debian/Ubuntu,但是你可以将此处介绍的所有内容应用于其他 Linux 发行版.我也鼓励你研究这份材料,并在适用的情况 ...
- 【面试题】Vue2动态添加路由 router.addRoute()
Vue2动态添加路由 点击打开视频讲解更加详细 场景: 一般结合VueX和localstorage一起使用 router.addRoutes vue-router4后 已废弃:使用 router.ad ...
- PAT (Basic Level) Practice 1025 反转链表 分数 25
给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转.例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为 3→2→1→6→5→4:如果 K 为 4,则输出应该 ...
- PAT (Basic Level) Practice 1013 数素数 分数 20
令 Pi 表示第 i 个素数.现任给两个正整数 M≤N≤104,请输出 PM 到 PN 的所有素数. 输入格式: 输入在一行中给出 M 和 N,其间以空格分隔. 输出格式: 输出从 PM 到 ...
- Filter 筛选器(二)之 ExceptionFilter
public class MyExceptionFilter : IAsyncExceptionFilter { private readonly ILogger<MyExceptionFilt ...