MinIO

MinIO

MinIO 是一种对象存储解决方案,提供与亚马逊云科技 S3 兼容的 API,并支持所有核心 S3 功能。 MinIO 专为部署在任何地方而构建 - 公共云或私有云、裸机基础架构、编排环境和边缘基础架构。

安装MinIO

官网:

https://dl.min.io/server/minio/release/windows-amd64/minio.exe

本地:D:\minio

无法双击启动需要打开命令提示符(cmd)

需要创建Data文件夹

把minio.exe和Data文件夹放在同一个文件夹中,server后面的地址就是这个文件夹的绝对路径

minio.exe server D:\minio\Data --console-address ":9001"

在网页输入http://127.0.0.1:9000,就可以进入MinIO的登录界面

在这里插入图片描述

在代码中实现创建桶并上传和下载

使用MinioClient.builder()方法创建一个MinioClient构建器对象,然后使用endpoint()方法指定Minio服务器的地址(这里是"http://127.0.0.1:9000")

使用credentials()方法指定连接Minio服务器的凭据(这里是用户名和密码)

最后使用build()方法构建MinioClient对象。这样,通过minioClient对象

private static MinioClient minioClient;

static {
    //初始化Minio客户端
    minioClient = MinioClient.builder()
            .endpoint("http://127.0.0.1:9000")
            .credentials("minioadmin", "minioadmin")
            .build();
}

创建桶

目的是检查指定名称的存储桶是否存在,如果不存在则创建它。如果存储桶已经存在,代码将不执行任何操作。

  1. 首先,使用bucketExists方法检查指定的存储桶是否已经存在。

    • BucketExistsArgs.builder()用于构建检查存储桶存在性的参数对象。
    • bucketName是要检查的存储桶的名称。
    • build()方法用于构建参数对象。
    • minioClient.bucketExists()方法返回一个布尔值,表示存储桶是否存在。

  2. 如果存储桶不存在,则使用makeBucket方法创建这个存储桶。

    • MakeBucketArgs.builder()用于构建创建存储桶的参数对象。
    • bucketName是要创建的存储桶的名称。
    • build()方法用于构建参数对象。
    • minioClient.makeBucket()方法用于创建存储桶。
/**
 * 创建桶
 * @param bucketName 桶的名称
 */
public static void createBucket(String bucketName) throws Exception{
    //先判断同是否存在,不存在则创建
    if(!minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build())) {
        minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());
    }
}

上传文件

minioClient.uploadObject方法用于将对象上传到MinIO服务器。

/**
 * 上传文件
 * @param bucketName 桶的名称
 * @param remotePath 远程要上传文件的路径
 * @param localPath 本地文件路径
 */
public static void upload(String bucketName,String remotePath,String localPath) throws Exception{
  
    minioClient.uploadObject(UploadObjectArgs.builder()
            //指定桶的名字
            .bucket(bucketName)
            //上传的远程文件路径
            .object(remotePath)
            //本地文件的路径
            .filename(localPath)
            .build());
}

下载文件

minioClient.downloadObject方法用于从MinIO服务器下载对象。

/**
 * 下载文件
 * @param bucket 桶的名称
 * @param remotePath 远程文件路径
 * @param downloadPath 下载到本地保存的路径
 */
public static void download(String bucket,
                            String remotePath,
                            String downloadPath) throws Exception{
    minioClient.downloadObject(DownloadObjectArgs.builder()
            //指定桶的名字
            .bucket(bucketName)
            //上传的远程文件路径
            .object(remotePath)
            //本地文件的路径
            .filename(localPath)
            .build());
}

Main函数中输出

public class Main {
    public static void main(String[] args) throws Exception {
        //        MinioUtils.createBucket("myapp1");

        //启动服务:minio.exe server D:\minio\Data --console-address ":9001"

        //上传
//        String bucket = "file";
        //你要上传到桶的路径
//        String remotePath = "image/1.jpg";
        //你要上传文件的路径
//        String localPath = "C:\\Users\\hamlet\\Pictures\\Camera Roll\\1234.jpg";
//        MinioUtils.upload(bucket,remotePath,localPath);

        //下载
        String bucket = "file";
        //你要从桶下载的路径
        String remotePath = "image/1.jpg";
        //你要下载到哪的路径
        String localPath = "C:\\Users\\hamlet\\Pictures\\Camera Roll\\22.jpg";
        MinioUtils.download(bucket,remotePath,localPath);
    }
}



****

要下载到哪的路径
        String localPath = "C:\\Users\\hamlet\\Pictures\\Camera Roll\\22.jpg";
        MinioUtils.download(bucket,remotePath,localPath);
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值