目录
3.2 通过Docker下载MinIO镜像、开启MinIO容器
4.2 通过MinIO SDK 集成到 IDEA Java Maven项目通过接口操作
1.前言
Java使用MinIO,官方文档已经很明了了,这里主要说明一下初次使用过程中遇到的一些问题:
MinIO英文文档:https://docs.min.io/docs/minio-docker-quickstart-guide.html
MinIO中文文档:http://docs.minio.org.cn/docs/
2.坑
最初按照MinIO步骤,通过docker安装的MinIO,由于不指定版本,默认安装最新版本,结果运行到最后报错:
javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,3]
Message: 文档中根元素前面的标记必须格式正确。
at io.minio.Xml.unmarshal(Xml.java:55)
at io.minio.S3Base.getRegion(S3Base.java:698)
at io.minio.S3Base.execute(S3Base.java:470)
at io.minio.S3Base.executeHead(S3Base.java:728)
at io.minio.MinioClient.bucketExists(MinioClient.java:1135)
at org.example.minio.FileUploader.main(FileUploader.java:53)
通过研究发现问题:
MinIO中文文档步骤安装:本地MinIO本地镜像是最新的镜像,但是JAVA Client项目引用的却是7.0.2,会报如上错误。
MinIO英文文档步骤安装:本地MinIO本地镜像是最新的镜像,JAVA Client项目引用的是8.3.0,版本一致,不会报错。
3.安装步骤和解析
文档中如何通过docker安装MinIO镜像,如何开启容器,如何通过IDEA的Java Maven项目调用MinIO写的都比较详细,这里就不累赘了。下面主要解析一下大体上内容:
3.11 下载Docker
地址:https://www.runoob.com/docker/docker-architecture.html
解释:Docker可以安装各种软件,下载软件的镜像,运行时候开启一个容器,这个软件就在这个容器中运行,不会污染别的程序,Docker可以很方便管理这些容器,比如开启,停止,删除容器,若是以一般采用Docker来管理MinIO微服务。
3.2 通过Docker下载MinIO镜像、开启MinIO容器
开启容器命令如下,我做了详细的解释:
docker run \
-p 9000:9000 \
-p 9001:9001 \
--name minio-example \
-e "MINIO_ROOT_USER=minio" \
-e "MINIO_ROOT_PASSWORD=12345678" \
-v /Users/zst/Documents/Docker/minio/data:/data \
minio/minio server /data --console-address ":9001"
----------
-p 第一个是api接口
-p 第一个是网络接口
--name 开启的docker容器名称
-e 登录名
-e 登录密码
-v 服务器上传的文件存储路径
minio/minio server /data 指定:docker镜像、服务、数据
--console-address ":9001” 指定:静态接口,这样网页才能访问
对每一行都做了解释,这里是开启了单点模式容器。运行完毕之后,MinIO微服务就算完美的在本地启动了,后面就可以通过各种路径对服务器文件进行操作了。
4.MinIO微服务文件操作
4.1 通过MinIO网页简单操作
就可以通过网页来直接访问微服务,可以看到里面上传的各种文件,这一点比较好,其它微服务都不提供网页客户端。网页只能对文件进行简单的操作。
网页访问的是:http://localhost:9001
4.2 通过MinIO SDK 集成到 IDEA Java Maven项目通过接口操作
具体步骤在这里,不做详细介绍了
这里只是要说一下坑,一定要版本对应,否则会报上面的错,通过MinIO SDK可以通过Java项目方便的对微服务的文件进行上传、删除等操作。
Java对MinIO访问接口是:http://localhost:9000,切记和网页有区别的。
4.3 MinIO终端命令操作
可以通过MinIO提供的命令行客户端对文件进行操作,虽然上面网页可以访问,但是操作比较单一,可以通过命令行工具对文件批量操作: