1:下载压缩文件到本地服务器 //下载压缩文件 public static void main(String[] args) { try { // 初
//下载压缩文件 public static void main(String[] args) { try { // 初始化MiNIO客户端 Minioclient minioClient = MinioClient.builder() .endpoint("Http://" + "192.168.16.188:9000") .credentials("admin", "admin123456") .build(); // 下载压缩文件到本地文件系统,在temp生成的临时文件 File zipFile = File.createTempFile("example", ".zip"); log.info("zipFile=====" + zipFile.getPath()); minioClient.downloadObject(DownloadObjectArgs.builder().bucket("otatest").object("ya2.zip").filename(zipFile.getAbsolutePath()).build()); }
@SneakyThrows public static void main(String[] args) { try { // 初始化MinIO客户端 MinioClient minioClient = MinioClient.builder() .endpoint("http://" + "192.168.16.188:9000") .credentials("admin", "admin123456") .build(); // 下载压缩文件到本地文件系统 File zipFile = File.createTempFile("example", ".zip"); log.info("zipFile=====" + zipFile.getPath()); minioClient.downloadObject(DownloadObjectArgs.builder().bucket("otatest").object("模板2.zip").filename(zipFile.getAbsolutePath()).build()); // 解压文件 ZipInputStream zipInputStream = new ZipInputStream(new FileInputStream(zipFile),Charset.forName("GBK")); ZipEntry zipEntry = zipInputStream.getNextEntry(); while (zipEntry != null) { File entryFile = new File(zipEntry.getName()); File file = new File("C:\\Users\\dell\\Desktop\\22\\" + StringUtils.getFilename(entryFile.getName())); org.springframework.util.FileCopyUtils.copy(entryFile, file); zipEntry = zipInputStream.getNextEntry(); } zipInputStream.closeEntry(); zipInputStream.close(); // 删除本地的压缩文件 zipFile.delete(); } catch (Exception e) { e.printStackTrace(); } }
@SneakyThrows public static void main(String[] args) { MinioClient minioClient = MinioClient.builder() .endpoint("http://" + "192.168.16.188:9000") .credentials("admin", "admin123456") .build(); CustomMinioClient customMinioClient = new CustomMinioClient(minioClient); ZipInputStream zis = null; long s = System.currentTimeMillis();// try (InputStream is = customMinioClient.getObject(GetObjectArgs.builder().bucket(getBucket()).object(objectName).build())) { try (InputStream is = customMinioClient.getObject(GetObjectArgs.builder().bucket("otatest").object("模板.zip").build())) { System.out.println(System.currentTimeMillis() - s); // 创建ZipInputStream,用于读取ZIP文件 zis = new ZipInputStream(is, Charset.forName("UTF-8")); // 遍历ZIP文件中的所有条目 ZipEntry entry; while ((entry = zis.getNextEntry()) != null) { // 如果当前条目是目录,则创建目录 if (entry.isDirectory()) { new File(entry.getName()).mkdirs(); } else { // 如果当前条目是文件,则解压缩该文件 FileOutputStream fos = new FileOutputStream(StringUtils.getFilename(entry.getName())); byte[] buffer = new byte[1024]; int len; while ((len = zis.read(buffer)) > 0) { fos.write(buffer, 0, len); } fos.close(); zis.closeEntry(); //删除下载的文件 Files.delete(Paths.get(StringUtils.getFilename(entry.getName()))); } } } catch (Exception e) { e.printStackTrace(); } finally { // 关闭ZipInputStream if (zis != null) { zis.close(); } } }
@SneakyThrows public static void main(String[] args) { MinioClient minioClient = MinioClient.builder() .endpoint("http://" + "192.168.16.188:9000") .credentials("admin", "admin123456") .build(); CustomMinioClient customMinioClient = new CustomMinioClient(minioClient); ZipInputStream zis = null; try (InputStream is = customMinioClient.getObject(GetObjectArgs.builder().bucket("otatest").object("模板.zip").build())) { // 创建ZipInputStream,用于读取ZIP文件 zis = new ZipInputStream(is, Charset.forName("GBK")); // 遍历ZIP文件中的所有条目 ZipEntry entry; ByteArrayOutputStream bos = new ByteArrayOutputStream(); byte[] bytes = new byte[1024]; while ((entry = zis.getNextEntry()) != null) { // 如果当前条目是目录,则创建目录 if (entry.isDirectory()) { new File(entry.getName()).mkdirs(); } else { while (true) { int len = zis.read(bytes); if (len <= 0) {break; } bos.write(bytes); } bos.flush(); bos.close(); zis.closeEntry(); InputStream bis = new ByteArrayInputStream(bos.toByteArray()); minioClient.putObject(PutObjectArgs.builder().bucket("otatest").object(entry.getName()).stream(bis, -1L, 10485760L).build()); bis.close(); } } } catch (Exception e) { e.printStackTrace(); } finally { // 关闭ZipInputStream if (zis != null) { zis.close(); } } }
@SneakyThrows public static void main13(String[] args) { MinioClient minioClient = MinioClient.builder() .endpoint("http://" + "192.168.16.188:9000") .credentials("admin", "admin123456") .build(); CustomMinioClient customMinioClient = new CustomMinioClient(minioClient); ZipInputStream zipIn = null; InputStream is = customMinioClient.getObject(GetObjectArgs.builder().bucket("otatest").object("模板.zip").build()); // 创建ZipInputStream,用于读取ZIP文件 zipIn = new ZipInputStream(is, Charset.forName("GBK")); // 遍历ZIP文件中的所有条目 ByteArrayOutputStream bos = new ByteArrayOutputStream(); byte[] bytes = new byte[1024]; ZipEntry zipEntry; //查询下载名字,可以是数组这样就可以下载多个文件,但是要修改逻辑代码 String[] files = {"java.txt"}; while ((zipEntry = zipIn.getNextEntry()) != null) { for (String fileName:files) { if (zipEntry.getName().equals(fileName)) { while (true) {int len = zipIn.read(bytes);if (len <= 0) { break;}bos.write(bytes); } bos.flush(); bos.close(); } } } InputStream bis = new ByteArrayInputStream(bos.toByteArray()); bos.close(); zipIn.closeEntry(); zipIn.close(); bis.close(); }
@SneakyThrows public static void main(String[] args) { MinioClient minioClient = MinioClient.builder() .endpoint("http://" + "192.168.16.188:9000") .credentials("admin", "admin123456") .build(); CustomMinioClient customMinioClient = new CustomMinioClient(minioClient); ZipInputStream zipIn = null; try { InputStream is = customMinioClient.getObject(GetObjectArgs.builder().bucket("otatest").object("模板.zip").build()); // 创建ZipInputStream,用于读取ZIP文件 zipIn = new ZipInputStream(is, Charset.forName("GBK")); // 遍历ZIP文件中的所有条目 ZipEntry zipEntry; //查询下载名字,可以是数组这样就可以下载多个文件,但是要修改逻辑代码 int i = 11; while ((zipEntry = zipIn.getNextEntry()) != null) { ++i; if (zipEntry.getSize() == 0) continue; minioClient.putObject(PutObjectArgs.builder() .bucket("otatest") .object(i + "") .stream(zipIn, -1L, 10485760L) .build()); zipIn.closeEntry(); } } catch (Exception e) { e.printStackTrace(); } finally { if (zipIn!=null) zipIn.closeEntry(); if (zipIn!=null) zipIn.close(); } }
来源地址:https://blog.csdn.net/qq_19891197/article/details/129714253
--结束END--
本文标题: 通过minio服务器压缩文件的下载和解压
本文链接: https://www.lsjlt.com/news/390396.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-13
2024-05-13
2024-05-11
2024-05-11
2024-05-10
2024-05-07
2024-04-30
2024-04-30
2024-04-30
2024-04-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0