Windows环境使用Minio如此简单

Windows环境下使用Minio对象存储真的好简单

很久很久以前,开发个Web程序,上传文件一直是在单个服务器上。后来,微服务流行后,再用单个服务器存储文件(配置虚拟目录方式)或者配置个FTP服务端再在程序中进行ftp的上传,总感觉没那么优雅~~-_-! 有一天Minio出现了,完美解决分布式存储文件存储的问题,而且足够轻量。

1、下载及安装

官网地址:https://min.io/download#/windows
分别下载服务端、客户端:
分别下载服务端和客户端

1.1、运行

1、在D盘建立文件夹Minio(d:/Minio),创建子文件夹进行存储(d:/Minio/MinioData)
2、把下载的服务端:minio.exe、客户端:mc.exe,拷贝到d:/Minio下
3、按住Shift再点击 鼠标右键,打开PowerShell 或Terminal

  • PowerShell运行:.\minio.exe server d:\Minio\MinioData
    4、Terminal运行:minio.exe server d:\Minio\MinioData
    运行minio

1.2、配置

点击:http://127.0.0.1:9000,或者直接浏览器输入打开网页,进入登录界面

  • 默认账号:minioadmin
  • 默认密码:minioadmin
    在这里插入图片描述
1.2.1、创建桶

在这里插入图片描述
点击“Create Bucket +”按钮,设置桶名并创建
如需要特定某个用户访问,可以点击 “Identity” -> “Create User +”,创建用户
在这里插入图片描述
使用API接入Minio需要创建AccessKey,点击“Access Keys” -> “Create access key +”,进行创建,默认随机一对,也可自行设置
在这里插入图片描述

如果嫌每次手动运行minio.exe麻烦,也可以花几分钟做成Windows服务,开机自动运行

  • 下载WinSW,下载地址:https://github.com/winsw/winsw/releases
    在这里插入图片描述
  • 拷贝到D:\Minio\,重命名成你想要的服务,如:minio-server.exe
  • 同目录下创建配置文件,minio-server.xml(注意需要同名)
  • 配置minio-server.xml文件
<service>
	<id>minio-server</id>
	<name>minio-server</name>
	<!-- 如果不能启动,可将description中的中文去除 -->
	<description>Minio文件存储服务</description>
	<startmode>Automatic</startmode>
	<!-- 也可以设置环境变量 -->
	<env name="HOME" value="%BASE%"/>
	<executable>%BASE%\minio.exe</executable>
	<arguments>server "%BASE%\MinioData"</arguments>
	<!-- 配置日志 -->
	<logpath>%BASE%\logs</logpath>
	<log mode="roll-by-size-time">
    	<sizeThreshold>10240</sizeThreshold>
      	<pattern>yyyyMMdd</pattern>
	    <autoRollAtTime>00:00:00</autoRollAtTime>
      	<zipOlderThanNumDays>5</zipOlderThanNumDays>
      	<zipDateFormat>yyyyMMdd</zipDateFormat>
    </log>
</service>

就可以安装成服务了

  • 安装服务:minio-server.exe install

  • 启动服务:minio-server.exe start

  • 停止服务:minio-server.exe stop

  • 卸载服务:minio-server.exe uninstall

  • 如果想改登录账号及密码,可以新建一个bat文件,内容为:

set MINIO_ACCESS_KEY=admin
set MINIO_SECRET_KEY=12345678
minio.exe server

如果需要特定的端口,也可以这样:

set MINIO_ACCESS_KEY=admin
set MINIO_SECRET_KEY=12345678
minio.exe server --address:9991 d:\Minio\MinioData

再配合WinSW就可以实现了

<service>
	<id>minio-server</id>
	<name>minio-server</name>
	<!-- 如果不能启动,可将description中的中文去除 -->
	<description>Minio文件存储服务</description>
	<startmode>Automatic</startmode>
	<executable>run.bat</executable>
</service>

在这里插入图片描述
这就已经成功安装服务了
卸载服务
在这里插入图片描述
当然你也可以用WinSW把java -jar变成一个Windows服务

1.3、Minio支持多种语言的SDK

链接:https://min.io/docs/minio/linux/developers/minio-drivers.html?ref=docs

1.3.1、Java中使用

Maven引用

<dependency>
	<groupId>io.minio</groupId>
	<artifactId>minio</artifactId>
	<version>8.5.7</version>
</dependency>

Java中使用

import io.minio.BucketExistsArgs;
import io.minio.MakeBucketArgs;
import io.minio.MinioClient;
import io.minio.UploadObjectArgs;
import io.minio.errors.MinioException;
import java.io.IOException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;

public class FileUploader {
  public static void main(String[] args)
      throws IOException, NoSuchAlgorithmException, InvalidKeyException {
    try {
      // Create a minioClient with the MinIO server playground, its access key and secret key.
      MinioClient minioClient =
          MinioClient.builder()
              .endpoint("https://play.min.io")
              .credentials("Q3AM3UQ867SPQQA43P2F", "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG")
              .build();

      // Make 'asiatrip' bucket if not exist.
      boolean found =
          minioClient.bucketExists(BucketExistsArgs.builder().bucket("asiatrip").build());
      if (!found) {
        // Make a new bucket called 'asiatrip'.
        minioClient.makeBucket(MakeBucketArgs.builder().bucket("asiatrip").build());
      } else {
        System.out.println("Bucket 'asiatrip' already exists.");
      }

      // Upload '/home/user/Photos/asiaphotos.zip' as object name 'asiaphotos-2015.zip' to bucket
      // 'asiatrip'.
      minioClient.uploadObject(
          UploadObjectArgs.builder()
              .bucket("asiatrip")
              .object("asiaphotos-2015.zip")
              .filename("/home/user/Photos/asiaphotos.zip")
              .build());
      System.out.println(
          "'/home/user/Photos/asiaphotos.zip' is successfully uploaded as "
              + "object 'asiaphotos-2015.zip' to bucket 'asiatrip'.");
    } catch (MinioException e) {
      System.out.println("Error occurred: " + e);
      System.out.println("HTTP trace: " + e.httpTrace());
    }
  }
}

其他自行摸索了,祝用餐愉快!

### 安装和配置MinIO对象存储服务 #### 准备工作 为了在Windows操作系统上安装和配置MinIO,需先准备好环境。确保已安装Docker来简化单节点模式下的部署过程[^2]。 #### 下载MinIO服务器二进制文件 访问官方提供的下载页面获取适用于Windows系统的MinIO服务器版本[^3]。对于非容器化环境中直接运行MinIO而言,这一步骤至关重要。 #### 使用Docker部署MinIO 考虑到操作简便性和后续管理维护,在Windows环境下推荐通过Docker来进行MinIO的部署。具体命令如下所示: ```bash docker pull minio/minio docker run -p 9000:9000 --name minio \ -e "MINIO_ROOT_USER=<your-username>" \ -e "MINIO_ROOT_PASSWORD=<your-password>" \ -v /path/to/data:/data \ -v /path/to/config:/root/.minio \ minio/minio server /data --console-address ":9000" ``` 上述脚本中的`<your-username>` 和 `<your-password>` 需要替换为自定义设置的安全凭证;而 `/path/to/data` 则指向实际用于保存数据的位置[^4]。 #### 启动并验证MinIO服务状态 完成以上步骤之后,可以通过浏览器访问 `http://localhost:9000` 来确认MinIO控制台是否正常启动,并按照提示登录进行初始化配置。 #### 整合到Java应用程序中 如果计划将MinIO集成至基于Spring Boot框架构建的应用程序,则可以在项目入口处创建一个引导类以便快速开始[^5]: ```java @SpringBootApplication public class MinIOApplication { public static void main(String[] args) { SpringApplication.run(MinIOApplication.class,args); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值