如果您对名词或代码有任何疑问,可以访问文章“一小时实践入门MinIO—分布式对象存储服务器(三) - 知乎 (zhihu.com)”查找相关解释。MinIO是一个高性能的对象存储服务器,用于构建云存储解决方案。它使用Golang编写,专为私有云、公有云和混合云环境设计。它是兼容Amazon S3 API的,并可以作为一个独立的存储后端或与其他流行的开源解决方案(如Kubernetes)集成。MinIO允许你存储非结构化数据(如图片、视频、日志文件等)以对象的形式。与传统的文件系统(如NFS)或块存储(如iSCSI)相比,对象存储更易于扩展和管理。MinIO提供简单的部署选项和易于使用的界面,允许你快速设置和访问存储资源。在学习MinIO之前,了解以下技术和软件会很有帮助:了解这些基础知识后,你应该能更容易地上手和理解MinIO。以下是按照项目实践目标制定的一小时学习计划:目标1: 安装和运行MinIO服务器小目标1:下载MinIO服务器二进制文件。在Linux终端使用wget或curl命令下载。小目标2:启动MinIO服务器。在终端中导航到下载的文件位置并运行它。目标2: 创建一个MinIO存储桶(Bucket)和上传文件小目标1:登录MinIO控制台。打开Web浏览器,访问MinIO服务器的URL。小目标2:创建存储桶。在MinIO控制台创建一个新的存储桶。小目标3:上传文件。上传一个或多个测试文件到新创建的存储桶。目标3: 使用Java进行S3 API操作小目标1:添加MinIO Java客户端库。在你的Java项目的pom.xml中添加MinIO的Maven依赖。小目标2:连接到MinIO服务器。使用Java代码和MinIO提供的凭据进行连接。小目标3:执行基本操作。使用Java代码上传、下载和删除存储桶中的对象。目标4: 实现简单的数据流转小目标1:使用Java读取一个CSV文件。从MinIO存储桶中下载一个CSV文件,并使用Java进行读取。小目标2:将数据写入数据库。使用JDBC或MyBatis将CSV文件的数据写入MySQL或PostgreSQL数据库。按照这个计划,你应该能在一小时内基本掌握MinIO的使用。当然,更深入的知识和应用需要额外的时间和实践。安装和运行MinIO服务器下载MinIO服务器二进制文件我用的是wsl2环境,也可以使用docker来安装。在WSL2终端中,你可以使用以下命令来下载MinIO服务器的二进制文件:下载完成后,给予该文件执行权限:这样,你就在WSL2环境里下载了MinIO的二进制文件并准备好了它的执行权限。启动MinIO服务器启动MinIO服务器的命令如下:这里,./data是用来存放MinIO数据的目录,需要提前创建好。你可以更改这个目录为你喜欢的任何其他目录。运行结果:然后MinIO服务器已经正常运行。但是有几点需要注意:默认凭据警告: 系统警告你使用了默认的用户名和密码(minioadmin:minioadmin)。为了安全,建议你通过设置环境变量 MINIO_ROOT_USER 和 MINIO_ROOT_PASSWORD 来更改这些值。单一主机警告: 你只有一个主机(host)与一个驱动器(drive)在运行,这可能会导致数据不可用的风险。在生产环境中,通常建议使用多个主机和多个驱动器。标准奇偶校验警告: 警告说标准的奇偶校验设置为0,这可能会导致数据丢失。这主要是针对多盘配置的。你现在可以通过http://127.0.0.1:9000 或 http://172.24.31.0:9000 访问MinIO的S3-API,并通过 http://127.0.0.1:38847 或 http://172.24.31.0:38847访问控制台。用户名和密码都是 minioadmin(除非你更改了它们)。(前面的ip是wsl2启动时自动分配的ip,用于Windows中访问)这个设置对于学习和测试是足够的,但如果你打算用于生产环境,建议解决上述的安全和可用性问题。创建一个MinIO存储桶(Bucket)和上传文件登录MinIO控制台。打开Web浏览器,访问MinIO服务器的URL上一步中控制台会显示对应的url,然后用默认账号minioadmin,默认密码minioadmin登录。创建存储桶。在MinIO控制台创建一个新的存储桶上传文件。上传一个或多个测试文件到新创建的存储桶。进入存储桶: 点击你之前创建的存储桶名,例如“my-images”查找上传选项: 通常,一旦你进入存储桶,会有一个上传选项。这可能是一个明显的按钮,或者在某个下拉菜单里。有时也可能是一个图标。使用Java进行S3 API操作添加MinIO Java客户端库新建一个maven项目,然后在pom.xml中添加MinIO的Maven依赖pom.xml连接到MinIO服务器。使用Java代码和MinIO提供的凭据进行连接在连接到MinIO服务器时,你需要使用MinioClient类,它是MinIO Java SDK提供的。下面是一个Java示例代码,该代码展示了如何使用特定的URL和凭据连接到MinIO服务器。这里的代码是一个简单但完整的Java类,它创建了一个MinioClient对象,并用它来检查一个名为 "mybucket" 的存储桶是否存在。请注意以下几点:运行这个Java程序后,它应该能告诉你存储桶是否存在。从这里,你可以进行更多的操作,比如创建新的存储桶、上传文件等。同时,这段代码也遵循了Java的最佳实践。执行基本操作。使用Java代码上传、下载和删除存储桶中的对象。为了展示如何使用Java和Minio库进行基本的存储桶操作(上传、下载、删除对象),我将创建一个简单的Java程序。这个程序将使用前面的MinioConnectionExample代码作为基础。文件名:MinioBucketOperations.java这个程序首先上传一个对象到指定的存储桶,然后从存储桶下载该对象,最后从存储桶删除该对象。注意:这里使用的是最佳实践和最适当的设计模式,包括资源的自动关闭和异常处理。这个程序需要之前创建一个名为"my-images"的存储桶和一个本地文件files/my-picture.png,你可以根据实际情况进行更改。运行结果:下一集:一小时实践入门MinIO—分布式对象存储服务器(二) - 知乎 (zhihu.com)