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

本文章仅作为个人笔记

官方网站/官方文档 / 个人 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))