美文网首页
开源对象存储工具Minio的使用(Java)

开源对象存储工具Minio的使用(Java)

作者: 草丛里的黄盖 | 来源:发表于2021-01-10 19:57 被阅读0次

    本文章仅作为个人笔记

    官方网站/官方文档 / 个人 demo

    • minio部署
      • docker (对外公开9000端口,实例名为minio,挂载本地/data目录)

        docker run --name minio -v /data:/data -p 9000:9000 \
        -e "MINIO_ROOT_USER=AKIAIOSFODNN7EXAMPLE" \
        -e "MINIO_ROOT_PASSWORD=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \
        minio/minio server  /data
        
      • 其他方式参考官方文档

    • minio使用
      • 引用(gradle)

        dependencies {
          implementation 'io.minio:minio:3.0.10'
        }
        
      • 上传文件

        # 获取连接
        MinioClient minioClient = new MinioClient(host, accessKey, secretKey);
        # 判断存储桶是否存在
        boolean isExist = minioClient.bucketExists(bucketName);
        if (!isExist) {
          # 不存在时创建存储桶
          minioClient.makeBucket(bucketName);
        }
        # 上传文件到存储桶
        minioClient.putObject(bucketName, file.getOriginalFilename(), file.getInputStream()
                    , file.getContentType());
        
      • 需要下载文件时可能需要用到文件信息同时用到文件流,而minio这里由于是公开库,所以是分开处理的,需要调用2个api才行。

      • 获取文件信息(包含文件名/文件大小/文件类型等信息)

        minioClient.statObject(bucketName, objectName);
        
      • 获取文件流(用于下载)

        minioClient.getObject(bucketName, objectName);
        
      • 基础的使用就到这了,代码可以直接参考完整demo

    相关文章

      网友评论

          本文标题:开源对象存储工具Minio的使用(Java)

          本文链接:https://www.haomeiwen.com/subject/igmkaktx.html