CNCF对象存储工具之MinIO:5:使用Java API操作MinIO 港控/mmm° 2022-11-22 00:10 459阅读 0赞 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpdW1pYW9jbg_size_16_color_FFFFFF_t_70_pic_center] 在上篇文章中介绍了使用mc客户端操作MinIO的方式,实际上也可以使用其他语言和MinIO进行集成,目前MinIO可以通过Java、JavaScript、Python、Go以及.Net等方式进行集成。这篇文章通过一个示例来介绍一下所提供的Java API的使用方式。 ### 目录 ### * MinIO Java Client SDK * JDK版本要求 * Pom文件使用方法 * * Maven方式 * Gradle方式 * Maven仓库地址 * MinIO服务器端安装设定 * MinIO客户端安装设定 * 使用示例 * * Pom文件 * 代码示例 * 执行与结果确认 * 注意事项 * 总结 -------------------- # MinIO Java Client SDK # MinIO Java Client SDK通过提供API的方式来访问和操作MinIO,同时可以操作Amazon S3以及与其兼容的对象存储。 # JDK版本要求 # JDK需要Java 1.8或更高版本,如下版本为最低JDK版本: * OracleJDK 8.0 * OpenJDK8.0 # Pom文件使用方法 # ## Maven方式 ## <dependency> <groupId>io.minio</groupId> <artifactId>minio</artifactId> <version>7.1.4</version> </dependency> ## Gradle方式 ## dependencies { compile 'io.minio:minio:7.1.4' } ## Maven仓库地址 ## * [https://repo1.maven.org/maven2/io/minio/minio/7.1.4/][https_repo1.maven.org_maven2_io_minio_minio_7.1.4] # MinIO服务器端安装设定 # 详细可参看:[https://liumiaocn.blog.csdn.net/article/details/109450407][https_liumiaocn.blog.csdn.net_article_details_109450407] # MinIO客户端安装设定 # 详细可参看:[https://liumiaocn.blog.csdn.net/article/details/109455360][https_liumiaocn.blog.csdn.net_article_details_109455360] # 使用示例 # ## Pom文件 ## <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>liumiaocn</groupId> <artifactId>minio</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>io.minio</groupId> <artifactId>minio</artifactId> <version>3.0.10</version> </dependency> </dependencies> </project> ## 代码示例 ## import java.io.IOException; import java.security.NoSuchAlgorithmException; import java.security.InvalidKeyException; import org.xmlpull.v1.XmlPullParserException; import io.minio.MinioClient; import io.minio.errors.MinioException; public class MinIOFileUploader { public static void main(String[] args) throws NoSuchAlgorithmException, IOException, InvalidKeyException, XmlPullParserException { try { // 使用MinIO服务的URL,端口,Access key和Secret key创建一个MinioClient对象 MinioClient minioClient = new MinioClient("http://localhost:9000", "liumiao", "password"); // 检查存储桶是否已经存在 boolean isExist = minioClient.bucketExists("newbucket"); if(isExist) { System.out.println("Bucket already exists."); } else { // 创建一个名为newbucket的存储桶。 minioClient.makeBucket("newbucket"); } // 使用putObject上传一个文件到存储桶中。 minioClient.putObject("newbucket","local-file-list.info", "/Users/liumiao/local-file-list.info"); System.out.println("/Users/liumiao/local-file-list.info is successfully uploaded as local-file-list.info to `newbucket` bucket."); } catch(MinioException e) { System.out.println("Error occurred: " + e); } } } ## 执行与结果确认 ## * 执行上述程序 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpdW1pYW9jbg_size_16_color_FFFFFF_t_70_pic_center 1] 然后从MinIO中就可以看到创建的新存储桶和文件的信息了 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpdW1pYW9jbg_size_16_color_FFFFFF_t_70_pic_center 2] # 注意事项 # 中文官方文档中仍然使用的是3.0.10的API,功能验证时直接使用了此版本,最新的7.1.4中有一些使用方式已经发生了变化。新版本的使用方式已经验证,详细可参看: * [https://liumiaocn.blog.csdn.net/article/details/109460974][https_liumiaocn.blog.csdn.net_article_details_109460974] # 总结 # 这篇文章介绍了如何利用MinIO提供的Java API进行存储桶检查、创建以及文件的上传。 [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpdW1pYW9jbg_size_16_color_FFFFFF_t_70_pic_center]: /images/20221120/0add3917585b48b58b9556a9e05b1368.png [https_repo1.maven.org_maven2_io_minio_minio_7.1.4]: https://repo1.maven.org/maven2/io/minio/minio/7.1.4/ [https_liumiaocn.blog.csdn.net_article_details_109450407]: https://liumiaocn.blog.csdn.net/article/details/109450407 [https_liumiaocn.blog.csdn.net_article_details_109455360]: https://liumiaocn.blog.csdn.net/article/details/109455360 [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpdW1pYW9jbg_size_16_color_FFFFFF_t_70_pic_center 1]: /images/20221120/1707474cdfc74db5baffb205e8805c18.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpdW1pYW9jbg_size_16_color_FFFFFF_t_70_pic_center 2]: /images/20221120/f52bce9e6af74d9d9eb585348b441023.png [https_liumiaocn.blog.csdn.net_article_details_109460974]: https://liumiaocn.blog.csdn.net/article/details/109460974
还没有评论,来说两句吧...