下载资源后端资源详情
MinioExample.zip
大小:50.42KB
价格:10积分
下载量:0
评分:
5.0
上传者:weixin_53742691
更新日期:2025-09-22

SpringBoot + minio实现文件切片极速上传技术源码(敢说全网整合完整度前三)

资源文件列表(大概)

文件名
大小
MinioExample/
-
MinioExample/.gitignore
395B
MinioExample/.idea/
-
MinioExample/.idea/.gitignore
-
MinioExample/.idea/aws.xml
304B
MinioExample/.idea/checkstyle-idea.xml
721B
MinioExample/.idea/compiler.xml
604B
MinioExample/.idea/encodings.xml
267B
MinioExample/.idea/inspectionProfiles/
-
MinioExample/.idea/inspectionProfiles/Project_Default.xml
155B
MinioExample/.idea/jarRepositories.xml
880B
MinioExample/.idea/misc.xml
513B
MinioExample/.idea/uiDesigner.xml
8.71KB
MinioExample/.idea/workspace.xml
6.42KB
MinioExample/.idea/ZeppelinRemoteNotebooks/
-
MinioExample/HELP.md
853B
MinioExample/pom.xml
3.43KB
MinioExample/src/
-
MinioExample/src/main/
-
MinioExample/src/main/java/
-
MinioExample/src/main/java/com/
-
MinioExample/src/main/java/com/xiaohui/
-
MinioExample/src/main/java/com/xiaohui/config/
-
MinioExample/src/main/java/com/xiaohui/config/MinioConfig.java
804B
MinioExample/src/main/java/com/xiaohui/controller/
-
MinioExample/src/main/java/com/xiaohui/controller/MinioFileUploadController.java
1.81KB
MinioExample/src/main/java/com/xiaohui/domain/
-
MinioExample/src/main/java/com/xiaohui/MinioExampleApplication.java
328B
MinioExample/src/main/java/com/xiaohui/utils/
-
MinioExample/src/main/java/com/xiaohui/utils/AjaxResult.java
3.84KB
MinioExample/src/main/java/com/xiaohui/utils/Constants.java
2.94KB
MinioExample/src/main/java/com/xiaohui/utils/HttpStatus.java
1.79KB
MinioExample/src/main/java/com/xiaohui/utils/MinioUtils.java
11.06KB
MinioExample/src/main/resources/
-
MinioExample/src/main/resources/application.yml
344B
MinioExample/src/main/resources/static/
-
MinioExample/src/main/resources/static/index.html
79B
MinioExample/src/test/
-
MinioExample/src/test/java/
-
MinioExample/src/test/java/com/
-
MinioExample/src/test/java/com/xiaohui/
-
MinioExample/src/test/java/com/xiaohui/MinioExampleApplicationTests.java
218B
MinioExample/target/
-
MinioExample/target/classes/
-
MinioExample/target/classes/application.yml
344B
MinioExample/target/classes/com/
-
MinioExample/target/classes/com/xiaohui/
-
MinioExample/target/classes/com/xiaohui/config/
-
MinioExample/target/classes/com/xiaohui/config/MinioConfig.class
3.36KB
MinioExample/target/classes/com/xiaohui/controller/
-
MinioExample/target/classes/com/xiaohui/controller/MinioFileUploadController.class
2.08KB
MinioExample/target/classes/com/xiaohui/MinioExampleApplication.class
717B
MinioExample/target/classes/com/xiaohui/utils/
-
MinioExample/target/classes/com/xiaohui/utils/AjaxResult.class
2.35KB
MinioExample/target/classes/com/xiaohui/utils/Constants.class
1.78KB
MinioExample/target/classes/com/xiaohui/utils/HttpStatus.class
881B
MinioExample/target/classes/com/xiaohui/utils/MinioUtils.class
11.81KB
MinioExample/target/classes/static/
-
MinioExample/target/classes/static/index.html
79B
MinioExample/target/generated-sources/
-
MinioExample/target/generated-sources/annotations/
-
MinioExample/target/generated-test-sources/
-
MinioExample/target/generated-test-sources/test-annotations/
-
MinioExample/target/maven-archiver/
-
MinioExample/target/maven-archiver/pom.properties
109B
MinioExample/target/maven-status/
-
MinioExample/target/maven-status/maven-compiler-plugin/
-
MinioExample/target/maven-status/maven-compiler-plugin/compile/
-
MinioExample/target/maven-status/maven-compiler-plugin/compile/default-compile/
-
MinioExample/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
273B
MinioExample/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
826B
MinioExample/target/maven-status/maven-compiler-plugin/testCompile/
-
MinioExample/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/
-
MinioExample/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
47B
MinioExample/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
126B
MinioExample/target/test-classes/
-
MinioExample/target/test-classes/com/
-
MinioExample/target/test-classes/com/xiaohui/
-
MinioExample/target/test-classes/com/xiaohui/MinioExampleApplicationTests.class
545B
MinioExample/target/xiaohui-0.0.1-SNAPSHOT.jar
12.31KB

资源内容介绍

Minio是一款开源的对象存储服务器,它可以运行在多种操作系统上,包括Linux、Windows和MacOS等。它提供了一种简单、可扩展、高可用的对象存储解决方案,支持多种数据格式,包括对象、块和文件等。以下是Minio的主要特点:简单易用:Minio的安装和配置非常简单,只需要下载并运行相应的二进制文件即可。它提供了一个Web UI,可以通过界面管理存储桶和对象。可扩展性:Minio可以轻松地扩展到多个节点,以提供高可用性和容错能力。它支持多种部署模式,包括单节点、主从复制和集群等。高可用性:Minio提供了多种机制来保证数据的可靠性和可用性,包括冗余备份、数据复制和故障转移等。安全性:Minio提供了多种安全机制来保护数据的机密性和完整性,包括SSL/TLS加密、访问控制和数据加密等。多语言支持:Minio支持多种编程语言,包括Java、Python、Ruby和Go等。社区支持:Minio是一个开源项目,拥有庞大的社区支持和贡献者。它的源代码可以在GitHub上获得,并且有一个活跃的邮件列表和论坛。对象存储:Minio的核心功能是对象存储。它允许用户
package com.xiaohui.utils;import com.xiaohui.config.MinioConfig;import io.minio.*;import io.minio.errors.*;import io.minio.http.Method;import lombok.SneakyThrows;import org.apache.tomcat.util.http.fileupload.IOUtils;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.http.HttpHeaders;import org.springframework.http.MediaType;import org.springframework.http.ResponseEntity;import org.springframework.stereotype.Component;import org.springframework.web.multipart.MultipartFile;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.UnsupportedEncodingException;import java.net.URLEncoder;import java.security.InvalidKeyException;import java.security.NoSuchAlgorithmException;import java.time.ZonedDateTime;import java.util.Arrays;import java.util.HashMap;import java.util.Map;import java.util.concurrent.TimeUnit;/** * @Description Minio工具类 * @Author IT小辉同学 * @Date 2023/06/02 */@Componentpublic class MinioUtils { @Autowired private MinioClient minioClient; @Autowired private MinioConfig configuration; /** * @param name 名字 * @return boolean * @Description description: 判断bucket是否存在,不存在则创建 * @Author IT小辉同学 * @Date 2023/06/02 */ public boolean existBucket(String name) { boolean exists; try { exists = minioClient.bucketExists(BucketExistsArgs.builder().bucket(name).build()); if (!exists) { minioClient.makeBucket(MakeBucketArgs.builder().bucket(name).build()); exists = true; } } catch (Exception e) { e.printStackTrace(); exists = false; } return exists; } /** * @param bucketName 存储bucket名称 * @return {@link Boolean } * @Description 创建存储bucket * @Author IT小辉同学 * @Date 2023/06/02 */ public Boolean makeBucket(String bucketName) { try { minioClient.makeBucket(MakeBucketArgs.builder() .bucket(bucketName) .build()); } catch (Exception e) { e.printStackTrace(); return false; } return true; } /** * @param bucketName 存储bucket名称 * @return {@link Boolean } * @Description 删除存储bucket * @Author IT小辉同学 * @Date 2023/06/02 */ public Boolean removeBucket(String bucketName) { try { minioClient.removeBucket(RemoveBucketArgs.builder() .bucket(bucketName) .build()); } catch (Exception e) { e.printStackTrace(); return false; } return true; } /** * @param fileName 文件名称 * @param time 时间 * @return {@link Map } * @Description 获取上传临时签名 * @Author IT小辉同学 * @Date 2023/06/02 */ @SneakyThrows public Map getPolicy(String fileName, ZonedDateTime time) { PostPolicy postPolicy = new PostPolicy(configuration.getBucketName(), time); postPolicy.addEqualsCondition("key", fileName); try { Map<String, String> map = minioClient.getPresignedPostFormData(postPolicy); HashMap<String, String> map1 = new HashMap<>(); map.forEach((k, v) -> { map1.put(k.replaceAll("-", ""), v); }); map1.put("host", configuration.getUrl() + "/" + configuration.getBucketName()); return map1; } catch (ErrorResponseException e) { e.printStackTrace(); } catch (InsufficientDataException e) { e.printStackTrace(); } catch (InternalException e) { e.printStackTrace(); } catch (InvalidKeyException e) { e.printStackTrace(); } catch (InvalidResponseException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (ServerException e) { e.printStackTrace(); } catch (XmlParserException e) { e.printStackTrace(); } return null; } /** * @param objectName 对象名称 * @param method 方法 * @param time 时间 * @param timeUnit 时间单位 * @return {@link String } * @Description 获取上传文件的url * @Author IT小辉同学 * @Date 2023/06/02 */ public String getPolicyUrl(String objectName, Method method, int time, TimeUnit timeUnit) { try { return minioClient.getPresignedObjectUrl(GetPresignedObjectUrlArgs.builder() .method(method) .bucket(configuration.getBucketName()) .object(objectName) .expiry(time, timeUnit).build()); } catch (ErrorResponseException e) { e.printStackTrace(); } catch (InsufficientDataException e) { e.printStackTrace(); } catch (InternalException e) { e.printStackTrace(); } catch (InvalidKeyException e) { e.printStackTrace(); } catch (InvalidResponseException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (XmlParserException e) { e.printStackTrace(); } catch (ServerException e) { e.printStackTrace(); } return null; } /** * @param file 文件 * @param fileName 文件名称 * @Description 上传文件 * @Author IT小辉同学 * @Date 2023/06/02 */ public void upload(MultipartFile file, String fileName) { // 使用putObject上传一个文件到存储桶中。 try { InputStream inputStream = file.getInputStream(); minioClient.putObject(PutObjectArgs.builder() .bucket(configuration.getBucketName()) .object(fileName) .stream(inputStream, file.getSize(), -1) .contentType(file.getContentType()) .build()); } catch (ErrorResponseException e) { e.printStackTrace(); } catch (InsufficientDataException e) { e.printStackTrace(); } catch (InternalException e) { e.printStackTrace(); } catch (InvalidKeyException e) { e.printStackTrace(); } catch (InvalidResponseException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (ServerException e) { e.printStackTrace(); } catch (XmlParserException e) { e.printStackTrace(); } } /** * @param objectName 对象名称 * @param time 时间 * @param timeUnit 时间单位 * @return {@link String } * @Description 根据filename获取文件访问地址 * @Author IT小辉同学 * @Date 2023/06/02 */ public String getUrl(String objectName, int time, TimeUnit timeUnit) { String url = null; try { url = minioClient.getPresignedObjectUrl(GetPresignedObjectUrlArgs.builder() .method(Method.GET) .bucket(configuration.getBucketName()) .object(objectName)

用户评论 (0)

发表评论

captcha