minio8.x手动文件上传demo

简介: minio8.x手动文件上传demo

下载地址



dl.min.io/


启动命令



minio.exe server E:\minio\
minio.exe server E:\minio\ --address :9000 --console-address :9999
复制代码


报错


Unsupported OkHttp library found. Must use okhttp >= 4.8.1


pom


<dependency>
          <groupId>io.minio</groupId>
          <artifactId>minio</artifactId>
         <version>8.3.7</version>
         <exclusions>
          <exclusion>
           <artifactId>okhttp</artifactId>
           <groupId>com.squareup.okhttp3</groupId>
          </exclusion>
         </exclusions>
        </dependency>
        <dependency>
          <groupId>com.squareup.okhttp3</groupId>
          <artifactId>okhttp</artifactId>
          <version>4.9.0</version>
        </dependency>
复制代码


手动上传demo


import java.io.FileInputStream;
import java.io.IOException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.UUID;
import io.minio.BucketExistsArgs;
import io.minio.GetPresignedObjectUrlArgs;
import io.minio.MakeBucketArgs;
import io.minio.MinioClient;
import io.minio.PutObjectArgs;
import io.minio.errors.MinioException;
import io.minio.http.Method;
public class MinioTest {
  public static void main(String[] args) {
    try {
      // 使用MinIO服务的URL,端口,Access key和Secret key创建一个MinioClient对象
      MinioClient minioClient = MinioClient.builder().endpoint("http://localhost:9000")
          .credentials("minioadmin", "minioadmin").build();
      // 检查存储桶是否已经存在
      String bucketName = "image";
      String fileName = UUID.randomUUID().toString() + ".jpg";
      boolean isExist = minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build());
      if (isExist) {
        System.out.println(bucketName + "存在");
      } else {
        // 创建一个名为test的存储桶,用于存储照片的zip文件。
        minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());
      }
      // 使用putObject上传一个文件到存储桶中。
      FileInputStream in = new FileInputStream("E:\\minio\\test.jpg");
      minioClient.putObject(
          PutObjectArgs.builder().bucket(bucketName).object(fileName).stream(in, in.available(), -1).build());
      // 查看文件地址
      GetPresignedObjectUrlArgs build = new GetPresignedObjectUrlArgs().builder().bucket(bucketName)
          .object(fileName).method(Method.GET).build();
      String url = minioClient.getPresignedObjectUrl(build);
      System.out.println(url);
    } catch (MinioException e) {
      e.printStackTrace();
    } catch (InvalidKeyException e) {
      e.printStackTrace();
    } catch (NoSuchAlgorithmException e) {
      e.printStackTrace();
    } catch (IllegalArgumentException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}
复制代码


网络异常,图片无法展示
|

相关文章
|
6月前
|
存储 Java 文件存储
|
6月前
|
JavaScript 前端开发 Java
springboot整合minio+vue实现大文件分片上传,断点续传(复制可用,包含minio工具类)
springboot整合minio+vue实现大文件分片上传,断点续传(复制可用,包含minio工具类)
1715 0
|
27天前
|
XML Java Kotlin
springboot + minio + kkfile实现文件预览
本文介绍了如何在容器中安装和启动kkfileviewer,并通过Spring Boot集成MinIO实现文件上传与预览功能。首先,通过下载kkfileviewer源码并构建Docker镜像来部署文件预览服务。接着,在Spring Boot项目中添加MinIO依赖,配置MinIO客户端,并实现文件上传与获取预览链接的接口。最后,通过测试验证文件上传和预览功能的正确性。
springboot + minio + kkfile实现文件预览
|
16天前
|
存储 前端开发 JavaScript
|
3月前
|
存储 Java API
SpringBoot + MinIO 实现文件切片极速上传技术
【8月更文挑战第19天】在现代互联网应用中,文件上传是一个常见且重要的功能。然而,随着文件体积的增大,传统的文件上传方式往往面临效率低下、耗时过长等问题。为了提升大文件上传的速度和效率,我们可以采用文件切片上传技术,并结合SpringBoot和MinIO来实现这一功能。
222 0
|
3月前
|
Java
Java SpringBoot FTP 上传下载文件
Java SpringBoot FTP 上传下载文件
142 0
|
6月前
|
Java 开发工具 对象存储
SpringBoot项目中使用阿里云Oss上传文件
SpringBoot项目中使用阿里云Oss上传文件
647 1
|
6月前
|
存储 Java 大数据
Springboot整合Minio实现文件上传和下载
Minio是一个灵活、高性能、开源的对象存储解决方案,适用于各种存储需求,并可以与云计算、容器化、大数据和应用程序集成。它为用户提供了自主控制和可扩展性,使其成为一个强大的存储解决方案。
731 0
|
前端开发 Java 关系型数据库
SpringBoot本地上传文件到resources目录永久保存下载的最佳实践
Java后端项目上传文件是一个很常见的需求,一般正式项目中我们上传文件都是利用第三方阿里云OSS这类的,但是如果只是为了学习之用,那我们可能就会直接上传到电脑上某个本地文件夹
283 1