MinIO

  1. 添加maven依赖

    1
    2
    3
    4
    5
    <dependency>
    <groupId>io.minio</groupId>
    <artifactId>minio</artifactId>
    <version>8.5.1</version>
    </dependency>
  2. 创建一个minioClient

    • endpoint 方法里的参数按实际情况填 MinIO 的服务地址
    • credentials 方法里的参数按实际情况分别填上对应的 Username 和 Password(accessKey 和 secretKey)
    1
    2
    3
    4
    5
    private static final MinioClient minioClient =
    MinioClient.builder()
    .endpoint("http://192.168.200.128:9000")
    .credentials("minioadmin", "minioadmin")
    .build();
  3. 上传文件到指定Bucket的根目录下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    @Test
    void testUploadObject() {
    try {
    UploadObjectArgs uploadObjectArgs = UploadObjectArgs.builder()
    .bucket("test-bucket")
    .object("pic.jpg")
    .filename("D:\\images\\pic.jpg")
    .build();
    minioClient.uploadObject(uploadObjectArgs);
    System.out.println("上传成功!");
    } catch (Exception e) {
    System.out.println("上传失败!");
    }
    }

    可以看到D:\\images\\pic.jpg文件成功上传到 MinIO 的 test-bucket 上,文件名为 pic.jpg

  4. 上传文件到指定Bucket的多级目录下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    @Test
    void testUploadObject2() {
    try {
    UploadObjectArgs uploadObjectArgs = UploadObjectArgs.builder()
    .bucket("test-bucket")
    .object("2023/1/14/pic.jpg")
    .filename("D:\\images\\pic.jpg")
    .build();
    minioClient.uploadObject(uploadObjectArgs);
    System.out.println("上传成功!");
    } catch (Exception e) {
    System.out.println("上传失败!");
    }
    }

    这里用当前日期作为多级目录,使用方式跟上面的testUploadObject测试方法类似,创建多级目录可以在.object("2023/1/14/pic.jpg")里写上对应的路径来创建。运行该方法后,可以在控制台上查看是否成功上传到指定的多级目录下:

    image-20241106192630547

  5. 删除文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    @Test
    void testRemoveObject() {
    try {
    RemoveObjectArgs removeObjectArgs = RemoveObjectArgs.builder()
    .bucket("test-bucket")
    .object("pic.jpg")
    .build();
    minioClient.removeObject(removeObjectArgs);
    System.out.println("删除成功!");
    } catch (Exception e) {
    System.out.println("删除失败!");
    }
    }
  6. 下载文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    @Test
    void testDownloadObject() {
    try {
    DownloadObjectArgs downloadObjectArgs = DownloadObjectArgs.builder()
    .bucket("test-bucket")
    .object("2023/1/14/pic.jpg")
    .filename("D:\\images\\pic2.jpg")
    .build();
    minioClient.downloadObject(downloadObjectArgs);
    System.out.println("下载成功!");
    } catch (Exception e) {
    System.out.println("下载失败!");
    }
    }

    这个方法将 MinIO 的test-bucket下的2023/1/14/pic.jpg文件下载到D:\\images\\pic2.jpg