使用minio实现大文件断点续传

2023-12-23 22:38:34

部署 minio

  1. 拉取镜像

    docker pull minio/minio
    docker images
    
    

    image-20231223213107713

  2. 新建映射目录

    新建下面图片里的俩个目录 data(存放对象-实际的数据) config 存放配置
    

    image-20231223214129975

  3. 开放对应端口

    我使用的是腾讯服务器所以 在腾讯的安全页面开启  9000,9090 两个端口就可以了(根据大家实际的情况进行开放端口号)
    
  4. 启动镜像

    docker run  -p 9000:9000 -p 9090:9090 --name minio \
     -d --restart=always \
     -e MINIO_ACCESS_KEY=minio \
     -e MINIO_SECRET_KEY=minio@123 \
     -v /home/nas/minio/data:/data \
     -v /home/nas/minio/config:/root/.minio \
      minio/minio server /data  --console-address ":9000" --address ":9090"
    

    在这里插入图片描述

  5. 测试minio是否搭建成功

    1. 访问管理页面

      账号密码

      minio

      minio@123

      http://ip:9000/
      image-20231223211934108

      image-20231223211151240

    2. 上传图片

      image-20231223211233501

      image-20231223211420787

      image-20231223211444493

      image-20231223211752102

    3. 访问图片

image-20231223211839559

引入JavaSDK 测试 上传和下载

  1. 在程序里使用需要先创建密钥,和对用的桶

    image-20231223201338315

  2. pom

    <dependency>
        <groupId>io.minio</groupId>
        <artifactId>minio</artifactId>
        <version>8.5.7</version>
    </dependency>
    
  3. 测试程序-上传

    minioClient = MinioClient.builder().endpoint(Url).credentials(AccessKey,SecretKey).build();
            // Make 'asiatrip' bucket if not exist.
            boolean found =
                    minioClient.bucketExists(BucketExistsArgs.builder().bucket(Bucket).build());
            if (!found) {
                // Make a new bucket called 'asiatrip'.
                //minioClient.makeBucket(MakeBucketArgs.builder().bucket("asiatrip").build());
                System.out.println("不存在!!!");
            } else {
                System.out.println("Bucket already exists.");
            }
    
            // Upload '/home/user/Photos/asiaphotos.zip' as object name 'asiaphotos-2015.zip' to bucket
            // 'asiatrip'.
            minioClient.uploadObject(
                    UploadObjectArgs.builder()
                            .bucket(Bucket)
                            .object("笔记.zip")
                            .filename("/Users/woods/candaoCodes/woodsTest/src/main/resources/笔记.zip")
                            .build());
    
  4. 测试程序-下载

    minioClient = MinioClient.builder().endpoint(Url).credentials(AccessKey,SecretKey).build();
            String presignedObjectUrl = minioClient.getPresignedObjectUrl(
                    GetPresignedObjectUrlArgs.builder()
                            .method(Method.GET)
                            .bucket(Bucket)
                            .object("笔记.zip")
                            .expiry(10000)
                            .build());
            System.out.println(presignedObjectUrl); //下载链接
    

文章来源:https://blog.csdn.net/kangshihang1998/article/details/135175119
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。