新闻动态大文件传输

大文件传输之探索Libarchive:功能强大的开源归档文件处理库

在当今数字化时代,文件存储与传输已成为企业日常运营的重要组成部分。然而,服务器中的压缩文件往往无法直接查看或预览,给用户带来了不便。在线解压功能的出现将大大提升用户体验。小编将带领大家介绍一个能够实现这一功能的开源库——Libarchive。

大文件传输,Libarchive,大文件传输系统

首先就是什么是Libarchive?

Libarchive是一个开源的C库,专门用于处理各种归档文件。它支持的格式广泛,包括tar、zip、7zip以及ISO映像等。Libarchive的功能丰富,不仅提供读取和写入归档文件的功能,还支持解压缩、压缩、加密和签名文件。它的跨平台特性使其能够在Windows、Linux和Mac等不同操作系统上运行,而且由于其高性能的内部IO模型设计,即便是处理非常大的归档文件也能保持最佳性能。

编译Libarchive

通过GitHub获取开源代码(https://github.com/libarchive/libarchive)

详细阅读项目中Read.md文档,了解到编译支持CMakeLists.txt

使用CMAKE GUI将CMakeLists.txt配置为VS工程,在转化的过程中需要配置一些依赖项。

压缩算法依赖库:LZ4,LZO,LZMA,Zstandard,Bzip2

加密依赖库:Mbed TLS,GNU Nettle,OpenSSL

根据自身需要添加相应的依赖库,比如需要zip就添加ZLIB, 7zip就添加LZMA。或者也可以在编译依赖库的时候,直接make install进行安装,这样在CMAKE配置过程中会自动查找到对应的库。

将VS工程生成之后,直接编译生成动态和静态库。如果需要的是静态链接,要在头文件<archive.h>添加宏定义LZMA_API_STATIC。如果需要支持win8以下低版本环境,需要在<config.h>将_WIN32_WINNT和WINVER设置为低版本环境的值。

大文件传输,Libarchive,大文件传输系统

在代码集成方面,Libarchive 使用时需要struct archive 和 struct archive_entry 基础类型对象,struct archive为原始压缩文件的实例,struct archive_entry为压缩文件中文件的实例。在 libarchive 中 大致的调用流程如下:

  1. 调用archive_xxx_new 创建一个archive对象

  2. 调用 support 或 set 对 archive 对象进行设置属性和判断是否支持解压格式

  3. 调用open 打开压缩文件

  4. 循环读取archive 内容:获取新的 archive_entry,从archive_entry中获取压缩文件数据

  5. 结束时,使用 close和free释放 archive 对象

注意事项 

在解压文件过程中,可能会出现获取文件名称为空或者乱码的情况。解决方式为:调用::setlocale(LC_CTYPE,“”);,设置程序默认字符环境。调用archive_entry_pathname_w和archive_entry_pathname_utf8替换archive_entry_pathname。

当压缩文件字符编码设置不规范时,如存在多种字符编码,返回的文件名是乱码,需要判断字符编码,一般为UTF8或者GBK。此外,解压文件是一个高消耗服务器资源的动作,所以还需要对解压功能加上限制读取速度、及时释放线程、内存等资源,防止影响到服务器正常运行。

总结 

镭速(私有化部署方案,也可接入公有云,企业、社会组织用户可申请免费试用)通过集成Libarchive,在Windows、Linux等多个平台上实现了在线解压功能,为企业提供了一个强大且安全的大文件传输系统在线解压解决方案。这不仅满足了企业在多样化场景下的数据处理需求,还为企业的长期发展提供了坚实的技术支持。在下一篇文章中,我们将进一步探讨镭速是如何利用Libarchive实现高效、智能的文件传输和管理。

本文《大文件传输之探索Libarchive:功能强大的开源归档文件处理库》内容由镭速-大文件传输软件整理发布,如需转载,请注明出处及链接:https://www.raysync.cn/news/post-id-1697

相关推荐

大文件传输之数据传输安全的重要性

大文件传输之传输协议的创新之处有哪些?

大文件传输之udp丢包解决方案

上一篇:镭速如何利用Libarchive实现高效、智能的文件传输和管理

下一篇:大文件传输之数据传输安全的重要性

热搜关键词

udp传输大数据|服务器数据迁移|高速文件传输解决方案|FTP传输|aspera替代方案|跨境传输|传输系统|传输数据|远程传输|数据迁移|大文件传输解决方案|大数据传输|跨国文件传输|远程大文件传输|高速传输|加速传输|文件共享传输|文件数据|文件共享|传输大文件|数据传输软件|TLS|媒体行业|传输文件|跨境数据传输|文件传输|影视传输|文件传输系统|数据同步|同步传输|小文件传输|安全文件传输|发送大文件|共享文件|mft|sftp|ftps|aes|数据管理|文件直传|快速文件传输|电子邮件文件传输|传输解决方案|超大文件传输|文件传输软件|文件同步|文件同步软件|大数据传输|文件传输工具|文件传输协议|安全文件同步|高速文件传输|高速传输软件|传输软件|SD-WAN|极速传输|远程办公|外贸行业|文件管理|云计算|云存储|安全传输|网络|高速缓存|SOCKS5|断点续传|aspera|高速传输协议|传输加密|高可用|跨国传输|文件同步传输|高速数据传输|企业级文件传输软件|大文件传输软件|tcp传输|传输协议|AD域|LDAP|数据传输|镭速传输|镭速云传|文件传输|大文件传输|文件管理平台|镭速软件|镭速|镭速云|文件传输解决方案|跨境文件传输|点对点传输|数据交换|企业网盘私有化部署|UDP文件传输工具|文件分享|企业大文件传输|海量文件传输|内网文件传输工具|私有化部署|ftp传输替代方案|跨网文件交换|替代FTP|文件传输校验|远距离传输大型文件|快速传输大文件|文档安全外发|局域网文件传输工具|内外网文件交换
企业大文件传输系统

最新资讯

合作请加商务微信

wechat qrcode