欢迎光临
我们一直在努力

minio文件,minio java

前言

? ?文章中的web解压工具类结合了minio文件服务,上传解压文件过程中,先解压成文件流,再将解压的文件又上传到minio文件服务器上。(不同本地文件服务,可以直接用文件copy的方式,cpoy到服务器指定静态文件服务的文件路径下)

pom文件依赖 <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-compress</artifactId> <version>1.18</version> </dependency> <!–minio–> <dependency> <groupId>io.minio</groupId> <artifactId>minio</artifactId> <version>3.0.10</version> </dependency>

?

调用?WebCompressUtil工具在线解压代码示例 MinioClient minioClient = new MinioClient(endpoint, accessKey, secretKey); // 检查存储桶是否已经存在 boolean isExist = minioClient.bucketExists(bucketName); if (!isExist) { minioClient.makeBucket(bucketName); } // 拼接文件名 String parentDir = genParentDir(); String objectName = parentDir + file.getOriginalFilename(); try { // 使用putObject上传一个文件到存储桶中。 minioClient.putObject(bucketName, objectName, file.getInputStream(), file.getSize(), null, null, file.getContentType()); } catch (Exception e) { e.printStackTrace(); } String finalFileName=null; List<String> list = WebCompressUtil.unCompress(file, minioClient, bucketName, parentDir); WebCompressUtil 工具类代码? import io.minio.MinioClient;import org.apache.commons.compress.archivers.tar.TarArchiveEntry;import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream;import org.springframework.web.multipart.MultipartFile;import java.io.BufferedInputStream;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import java.util.List;/** * web 压缩解压工具 */public class WebCompressUtil { private static final int BUFFER_SIZE = 2048; public static List<String> unTar(InputStream in,MinioClient minioClient,String bucketName,String parentDir) { List<String> fileNames = new ArrayList<String>(); try { TarArchiveInputStream tarIn = new TarArchiveInputStream(in, BUFFER_SIZE); while (tarIn.getNextTarEntry() != null) { TarArchiveEntry entry = tarIn.getNextTarEntry(); if (entry.isFile()) { minioClient.putObject(bucketName, parentDir+entry.getName(), tarIn, entry.getSize(), null, null, null); fileNames.add(parentDir+entry.getName()); } } } catch (Exception e) { e.printStackTrace(); } return fileNames; } public static List<String> unZip(InputStream in,MinioClient minioClient,String bucketName,String parentDir) { List<String> fileNames = new ArrayList<String>(); try { // 创建客户端 ZipArchiveInputStream is = new ZipArchiveInputStream(new BufferedInputStream(in, BUFFER_SIZE)); ZipArchiveEntry entry = null; while ((entry = is.getNextZipEntry()) != null) { if (!entry.isDirectory()) { try { // 使用putObject上传一个文件到存储桶中。 minioClient.putObject(bucketName,parentDir+entry.getName() , is, entry.getSize(), null, null, null); } catch (Exception e) { e.printStackTrace(); } fileNames.add(parentDir+entry.getName()); } } } catch (Exception e) { e.printStackTrace(); } return fileNames; } /** * 解压方法 * * @param file 解压文件 * @return * @throws Exception */ public static List<String> unCompress(MultipartFile file,MinioClient minioClient,String bucketName,String parentDir){ List<String> ret = new ArrayList<String>(); try { String fileName=file.getOriginalFilename(); String upperName = fileName.toUpperCase(); if (upperName.endsWith(“.ZIP”)) { ret = unZip(file.getInputStream(),minioClient,bucketName, parentDir); } else if (upperName.endsWith(“.TAR”)) { ret = unTar(file.getInputStream(),minioClient,bucketName, parentDir); } } catch (IOException e) { e.printStackTrace(); } return ret; }}

?

29111184

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。