MinIO测试的详细步骤

上传文件

MinIO提供多个语言版本SDK的支持,下边找到java版本的文档:

地址:https://docs.min.io/docs/java-client-quickstart-guide.html

最低需求Java 1.8或更高版本:

maven依赖如下:

XML

<dependency>
    <groupId>io.minio</groupId>
    <artifactId>minio</artifactId>
    <version>8.5.1</version>
</dependency>
<dependency>
    <groupId>com.squareup.okhttp3</groupId>
    <artifactId>okhttp</artifactId>
    <version>4.8.1</version>
</dependency>

在media-service工程添加此依赖。

参数说明:

需要三个参数才能连接到minio服务。

参数

说明

Endpoint

对象存储服务的URL

Access Key

Access key就像用户ID,可以唯一标识你的账户。

Secret Key

Secret key是你账户的密码。

示例代码如下:

Java
import io.minio.BucketExistsArgs;
import io.minio.MakeBucketArgs;
import io.minio.MinioClient;
import io.minio.UploadObjectArgs;
import io.minio.errors.MinioException;
import java.io.IOException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
public class FileUploader {
  public static void main(String[] args)throws IOException, NoSuchAlgorithmException, InvalidKeyException {
    try {
      // Create a minioClient with the MinIO server playground, its access key and secret key.
      MinioClient minioClient =
          MinioClient.builder()
              .endpoint("https://play.min.io")
              .credentials("Q3AM3UQ867SPQQA43P2F", "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG")
              .build();
      // Make 'asiatrip' bucket if not exist.
      boolean found =
          minioClient.bucketExists(BucketExistsArgs.builder().bucket("asiatrip").build());
      if (!found) {
        // Make a new bucket called 'asiatrip'.
        minioClient.makeBucket(MakeBucketArgs.builder().bucket("asiatrip").build());
      } else {
        System.out.println("Bucket 'asiatrip' already exists.");
      }
      // Upload '/home/user/Photos/asiaphotos.zip' as object name 'asiaphotos-2015.zip' to bucket
      // 'asiatrip'.
      minioClient.uploadObject(
          UploadObjectArgs.builder()
              .bucket("asiatrip")
              .object("asiaphotos-2015.zip")
              .filename("/home/user/Photos/asiaphotos.zip")
              .build());
      System.out.println(
          "'/home/user/Photos/asiaphotos.zip' is successfully uploaded as "
              + "object 'asiaphotos-2015.zip' to bucket 'asiatrip'.");
    } catch (MinioException e) {
      System.out.println("Error occurred: " + e);
      System.out.println("HTTP trace: " + e.httpTrace());
    }
  }
}

参考示例在media-service工程中 测试上传文件功能,

首先创建一个用于测试的bucket

点击“Manage”修改bucket的访问权限

选择public权限

上传文件

测试代码如下:

以下代码都是经过我自己的简化的,简化版,官方给的参考文档里面的东西很多,有很多用不到

Java
package com.xuecheng.media;

import io.minio.BucketExistsArgs;
import io.minio.MakeBucketArgs;
import io.minio.MinioClient;
import io.minio.UploadObjectArgs;
import io.minio.errors.MinioException;

import java.io.IOException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;

 

/**
 * @author Mr.M
 * @version 1.0
 * @description 测试minio上传文件、删除文件、查询文件
 * @date 2023/2/20 14:42
 */
public class MinIOTest {

static MinioClient minioClient =
        MinioClient.builder()
//自己服务器地址+端口号
                .endpoint("http://26.252.208.115:9090")
//登录的账户密码
                .credentials("minioadmin", "minioadmin")
                .build();

//上传文件,指定桶内的子目录
@Test
public void upload() {
    try {
        UploadObjectArgs uploadObjectArgs = UploadObjectArgs.builder()
//桶名
                .bucket("mediafiles")
//test:是mediafiles里的文件路径,文件名:Java学习路线.md
                .object("test/Java学习路线.md")
//自己电脑的文件路径,进行上传
                .filename("D:\\Desktop\\code-roadmap-main\\code-roadmap-main\\docs\\roadmap\\Java学习路线.md")
                .build();
        //上传
        minioClient.uploadObject(uploadObjectArgs);
        System.out.println("上传成功了");
    } catch (Exception e) {
        System.out.println("上传失败");
    }


}

}

执行main方法,共上传两个文件,1.mp4上传到桶根目录下,1.avi上传到 桶中的avi目录下,avi目录会自动创建。

上传成功,通过web控制台查看文件,并预览文件。

下面就是上传成功了

 删除文件

下边测试删除文件

参考:https://docs.min.io/docs/java-client-api-reference#removeObject

//删除文件
@Test
public void delete() {

    try {
//查询要删除的文件在哪个桶,然后进行删除文件
        RemoveObjectArgs removeObjectArgs = RemoveObjectArgs.builder().bucket("mediafiles").object("test/Java学习路线.md").build();
        minioClient.removeObject(removeObjectArgs);
    } catch (Exception e) {
    }

}

查询文件

通过查询文件查看文件是否存在minio中。

参考:https://docs.min.io/docs/java-client-api-reference#getObject

//查询文件
@Test
public void getFile() {
//要查询的桶和文件名
    GetObjectArgs getObjectArgs = 
GetObjectArgs.builder().bucket("mediafiles").object("Java学习路线.md").build();
    try (
            FilterInputStream inputStream = minioClient.getObject(getObjectArgs);
//下面路径是输出到自己电脑的位置
            FileOutputStream outputStream = new FileOutputStream(new File("D:\\Desktop\\code-roadmap-main\\code-roadmap-main\\docs\\roadmap\\Java学习路线11.md"));
    ) {

        if (inputStream != null) {
            IOUtils.copy(inputStream, outputStream);
        }
    } catch (Exception e) {
    }

}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值