MinIO部署和使用(笔记)

中文文档:
https://docs.min.io/cn/

docker部署

docker run -p 9000:9000 \
  --name minio_test \
  -v /home/soft/minio:/data \
  -e "MINIO_ROOT_USER=AKIAIOSFODNN7EXAMPLE" \
  -e "MINIO_ROOT_PASSWORD=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \
  minio/minio:edge server /data

访问:http://192.168.11.223:9000/

账号密码为docker启动的MINIO_ROOT_USER、MINIO_ROOT_PASSWORD参数

 主界面

Java Client SDK提供的API实现文件上传

1.pom.xml添加

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

2.编写demo

    @Test
    public void minioTest() {
        File file = new File("C:\\Users\\Administrator\\Downloads\\echarts.png");
        try (InputStream in = new FileInputStream(file)) {
            MinioClient minioClient =
                    MinioClient.builder()
                            //MinIO服务的URL
                            .endpoint("http://192.168.11.223:9000")
                            //账号-密码
                            .credentials("AKIAIOSFODNN7EXAMPLE", "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY")
                            .build();
            String bucketName = "my-bucket01";
            // 检查存储桶是否存在
            boolean found = minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build());
            if (found) {
                System.out.println(bucketName + " 存在!");
            } else {
                System.out.println(bucketName + " 不存在, 执行创建存储桶!");
                // 创建存储桶
                minioClient.makeBucket(
                        MakeBucketArgs.builder()
                                .bucket(bucketName)
                                .build());
            }
            //这里用下hutool的工具类-根据文件扩展名获得MimeType
            String mime = FileUtil.getMimeType(file.getName());
            System.out.println("mime: " + mime);
            if (mime == null) {
                //二进制流,不知道下载文件类型
                mime = "application/octet-stream";
            }
            // 使用putObject上传一个文件到存储桶中。
            ObjectWriteResponse objectWriteResponse = minioClient.putObject(
                    PutObjectArgs.builder().bucket(bucketName).object(file.getName()).stream(
                            in, file.length(), -1)
                            //文件类型,可不传,传了之后,浏览器访问分享文件时候,response header会返回"Content-Type: image/png",方便预览
                            .contentType(mime)
                            .build());
            System.out.println(objectWriteResponse.etag());
            System.out.println("文件上传ok!");
        } catch (Exception e) {
            System.out.println("异常: " + e);
        }
    }

 

效果:

 

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小绿豆

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值