iis服务器助手广告广告
返回顶部
首页 > 资讯 > 服务器 >通过minio服务器压缩文件的下载和解压
  • 904
分享到

通过minio服务器压缩文件的下载和解压

服务器javaservlet 2023-09-02 09:09:01 904人浏览 薄情痞子
摘要

1:下载压缩文件到本地服务器 //下载压缩文件 public static void main(String[] args) { try { // 初

1:下载压缩文件到本地服务器

    //下载压缩文件    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());    }

2:先下载压缩文件,解压出里面的文件,下载到本地服务器指定位置,注意这种下载方式很慢,同时需要注意下载的文件夹目录是否有,不然那会报错

    @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();        }    }

3:获取压缩文件流(这种方式比下载压缩文件快),解压出里面的文件,下载到本地服务器指定位置,注意这种下载方式很慢,同时需要注意下载的文件夹目录是否有,不然那会报错

    @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();            }        }    }

4:获取压缩文件流(这种方式比下载压缩文件快),获取压缩文件里的每一个文件流,进行操作,上传到minio

    @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();            }        }    }

5:可以从压缩文件下载指定的文件

@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();            }

6:获取压缩文件流(这种方式比下载压缩文件快),获取压缩文件里的每一个文件流,进行操作,上传到minio,这种方式推荐使用,最快

    @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文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 通过minio服务器压缩文件的下载和解压
    1:下载压缩文件到本地服务器 //下载压缩文件 public static void main(String[] args) { try { // 初...
    99+
    2023-09-02
    服务器 java servlet
  • Linux下文件的压缩和解压方法
    本篇内容介绍了“Linux下文件的压缩和解压方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!gzip功能说明:解压文件。语  法:gzip...
    99+
    2023-06-12
  • C#通过cmd调用7z软件实现压缩和解压文件
    压缩文件: public object CompressZipFile(string sourceFile, string destinationFile) { ...
    99+
    2024-04-02
  • Linux文件压缩和解压缩的命令
    本篇内容介绍了“Linux文件压缩和解压缩的命令”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、tar:tar命令:tar [选项...]...
    99+
    2023-06-13
  • Ubuntu压缩和解压缩RAR文件的方法
    本篇内容主要讲解“Ubuntu压缩和解压缩RAR文件的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Ubuntu压缩和解压缩RAR文件的方法”吧!方法很简单,一条命令就搞定了:sudo ap...
    99+
    2023-06-13
  • Linux中文件的上传、下载、压缩、解压等命令和操作
    Linux中文件的上传、下载、压缩、解压等命令和操作 简单使用:当使用工具连接的Linux时,可以直接将文件进行鼠标拖拽进行文件操作 rz、sz命令 文件传输命令○ 安装:yum -y install lrzsz○ sz命令:sz ...
    99+
    2023-08-18
    linux 运维 服务器
  • Python实现rar、zip和7z文件的压缩和解压
    一、7z压缩文件的压缩和解压 1、安装py7zr 我们要先安装py7zr第三方库: pip install py7zr 如果python环境有问题,执行上面那一条安装语句老是安装在默认的python环...
    99+
    2023-09-20
    python
  • 通俗易懂【Springboot】 单文件下载和批量下载(多个文件合成一个压缩包下载)
    文章目录 一.单文件下载1.简单理解文件下载2.单文件下载的具体代码实现3.测试4.单文件下载整体代码 二.多文件批量下载(多个文件合成一个压缩包下载)1.多文件下载的实现方式,这里使用了ZipOutputStream2....
    99+
    2023-08-17
    spring boot java 后端
  • linux下文件的解压过程
    这篇文章主要介绍“linux下文件的解压过程”,在日常操作中,相信很多人在linux下文件的解压过程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux下文件的解压过程”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-06
  • 使用hutool工具(ZipUtil)对多文件打包压缩并通过浏览器下载
    使用hutool工具(ZipUtil)对多文件打包压缩并通过浏览器下载 使用hutool工具对多文件进行打包压缩并下载 需求 工作中遇到需要将详情页面数据导出为word,同时详情中有图片和附件,由于附...
    99+
    2023-09-26
    java 开发语言
  • Linux平台下文件的压缩与解压参数介绍
    这篇文章主要介绍“Linux平台下文件的压缩与解压参数介绍”,在日常操作中,相信很多人在Linux平台下文件的压缩与解压参数介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux平台下文件的压缩与解压参...
    99+
    2023-06-10
  • java 批量下载将多个文件(minio中存储)压缩成一个zip包
    我的需求是将minio中存储的文件按照查询条件查询出来统一压成一个zip包然后下载下来。 思路:针对这个需求,其实可以有多个思路,不过也大同小异,一般都是后端返回流文件前端再处理下载,也有少数是压缩成zip包之后直接给下载链接返回到前端,前...
    99+
    2023-10-28
    java vue.js javascript spring boot
  • Linux系统下文件的压缩、打包与解压方法
    这篇文章主要介绍“Linux系统下文件的压缩、打包与解压方法”,在日常操作中,相信很多人在Linux系统下文件的压缩、打包与解压方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux系统下文件的压缩、打...
    99+
    2023-06-10
  • 如何在Python中处理文件压缩和解压缩的问题
    如何在Python中处理文件压缩和解压缩的问题简介:在日常开发和工作中,我们经常会遇到需要处理文件压缩和解压缩的问题。Python提供了一些强大的库,使得我们可以轻松地处理文件的压缩和解压缩操作。本文将介绍Python中常用的文件压缩和解压...
    99+
    2023-10-22
    压缩 文件 解压缩
  • 电脑下载的文件怎么解压
    这篇文章主要介绍“电脑下载的文件怎么解压”,在日常操作中,相信很多人在电脑下载的文件怎么解压问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”电脑下载的文件怎么解压”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-07-02
  • PHP实现文件夹压缩、解压及zip文件在服务器之间的传输
    如果有两个项目分布在两台服务器上,并且需要经常的传递文件夹或者文件,那么就需要考虑将文件夹或者大文件压缩后进行传输。 压缩与解压代码如下: public static function zipFolder($sourcePath...
    99+
    2023-09-06
    后端 服务器 Powered by 金山文档
  • Java多文件生成并压缩下载功能(思路详解)
    年前一直忙着项目现场实施,没时间整理,今天终于得空开始整理。 做WMS系统经常会遇到导出各种类型的库存单,此时就可以在后台将这些整合压缩到一个压缩包内然后再下载压缩包,一个接口就可以...
    99+
    2024-04-02
  • Linux下如何进行文件或者目录的打包及压缩、解压
    这篇文章将为大家详细讲解有关Linux下如何进行文件或者目录的打包及压缩、解压,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Linux下对于文件或者目录的打包及压缩、解压等操作压缩tar –...
    99+
    2023-06-05
  • 电脑QQ下载的文件怎么解压
    这篇文章主要介绍了电脑QQ下载的文件怎么解压的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇电脑QQ下载的文件怎么解压文章都会有所收获,下面我们一起来看看吧。电脑QQ下载的文件解压的方法:首先找到qq文件,点击“...
    99+
    2023-07-02
  • java实现文件打包压缩输出到浏览器下载
    文件打包压缩输出到浏览器下载 java批量下载文件打包压缩工具类,输出到浏览器下载,可以自己改名。 一、工具类: 入参 :文件LIst ;打包后的名字 ;响应到浏览器 ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作