MinIo搭建和使用

目录

一.Windows搭建MinIo

1.首先下载MinIo的运行文件

2.在下载路径上cmd进入命令窗口

3.输入启动命令:

4.访问地址(两个访问地址均可):

5.输入用户名和密码登录MinIo

6.使用minio存储文件需要先创建bucket

7.按照步骤进行操作,放开权限

二.Linux安装MinIo

1.具体命令:

三.MinIo的具体使用

1.引入依赖:

2.实现代码:

①.首先创建controller

②.创建service

③.书写实现类

④.添加配置文件

注意:MinioProperties和抛出的LocalException是自定义的类

⑤.让配置生效:


一.Windows搭建MinIo

1.首先下载MinIo的运行文件

网址:MinIO下载和安装 | 用于创建高性能对象存储的代码和下载内容编写代码和下载内容,为任何生产环境创建高性能、可无限扩展的对象存储系统。icon-default.png?t=N7T8https://www.minio.org.cn/download.shtml#/windows

2.在下载路径上cmd进入命令窗口

3.输入启动命令:

minio.exe server E:\Java\MinIo\data

注意:E:\Java\MinIo\data是运行路径,data为自行创建的文件

输入命令后显示如下:

4.访问地址(两个访问地址均可):

localhost:9000

localhost:56328

5.输入用户名和密码登录MinIo

用户名:minioadmin

密码:minioadmin

6.使用minio存储文件需要先创建bucket

7.按照步骤进行操作,放开权限

二.Linux安装MinIo

1.具体命令:

//拉取镜像
docker pull quay.io/minio/minio

// 创建数据存储目录
mkdir -p ~/minio/data

// 创建minio
docker run \
   -p 9001:9000 \
   -p 9090:9090 \
   --name minio \
   -v ~/minio/data:/data \
   -e "MINIO_ROOT_USER=admin" \
   -e "MINIO_ROOT_PASSWORD=admin123456" \
   -d \
   quay.io/minio/minio server /data --console-address ":9090"

注意:该操作的用户名和密码为:admin和admin123456

三.MinIo的具体使用

注意:这个使用是从本地通过数据流的方式对MinIo的使用

1.引入依赖:

<!-- 模块中加入如下依赖 -->
<dependency>
    <groupId>io.minio</groupId>
    <artifactId>minio</artifactId>
    <version>8.5.2</version>
</dependency>

2.实现代码:

①.首先创建controller
@RestController
@RequestMapping("/admin/system")
public class FileUploadController {

    @Autowired
    private FileUploadService fileUploadService;

    @PostMapping("/fileUpload")
    public Result fileUpload(@RequestParam("file") MultipartFile file){
        //1.获取上传文件

        String url = fileUploadService.upload(file);
        return Result.build(url, ResultCodeEnum.SUCCESS);
    }

}
②.创建service
public interface FileUploadService {
    String upload(MultipartFile file);
}
③.书写实现类
@Service
public class FileUploadServiceImpl implements FileUploadService {

    @Autowired
    private MinioProperties minioProperties;

    @Override
    public String upload(MultipartFile file) {
        try {
            // 创建一个Minio的客户端对象
            MinioClient minioClient = MinioClient.builder()
                    .endpoint(minioProperties.getEndpointUrl())
                    .credentials(minioProperties.getAccessKey(), minioProperties.getSecreKey())
                    .build();

            // 判断bucket  yyjh-bucket 是否存在,不存在则添加,存在则提示已存在
            boolean found =
                    minioClient.bucketExists(BucketExistsArgs.builder().bucket(minioProperties.getBucketName()).build());
            if (!found) {
                // 创建一个新的 'yyjh-bucket'.
                minioClient.makeBucket(MakeBucketArgs.builder().bucket(minioProperties.getBucketName()).build());
            } else {
                System.out.println("Bucket 'yyjh-bucket' 已存在");
            }

            //获取文件名称
            //根据日期对上传文件进行分组,并且通过uuid生成唯一的文件名
            String date = DateUtil.format(new Date(), "yyyyMMdd");
            String uuid = UUID.randomUUID().toString().replaceAll("-","");


            String filename = date + "/" + uuid + file.getOriginalFilename();
            //通过流获取文件
            InputStream inputStream = file.getInputStream();
            //文件上传  使用流的方式上传
            minioClient.putObject(PutObjectArgs.builder()
                            .bucket(minioProperties.getBucketName())
                            .object(filename)
                            .stream(inputStream,file.getSize(),-1)
                            .build());
            //获取上传文件在minio的路径
            String url = minioProperties.getEndpointUrl() + "/" + minioProperties.getBucketName() + "/" + filename;
            return url;

        } catch (Exception e) {
            e.printStackTrace();
            throw new LocalException(ResultCodeEnum.SYSTEM_ERROR);
        }

    }
}
④.添加配置文件
注意:MinioProperties和抛出的LocalException是自定义的类

以下代码是放在.xml配置文件中

yyjh:
  minio:
    endpointUrl: http://127.0.0.1:9000
    accessKey: minioadmin
    secreKey: minioadmin
    bucketName: yyjh-bucket
@Data
@ConfigurationProperties(prefix = "yyjh.minio")
public class MinioProperties {
    private String endpointUrl;
    private String accessKey;
    private String secreKey;
    private String bucketName;
}
⑤.让配置生效:

在启动类类上加

@EnableConfigurationProperties(value = {MinioProperties.class})

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值