我有大约 1000 万个小文本文件,我想解决以下任务:
- 压缩所有数据;
- 将其全部放入 1 个文件中以便通过互联网传输;
- 能够根据路径快速访问每个单个文件;
- (更新)可以从 Python 生态系统中轻松访问单个文件。
我想出了以下解决方案:
- gzip 每个文件(压缩);
将所有 gzip 文件添加到单个 tarball 中:
单.tar -> /1/100/1001451.gz...-> /9/956/9562548.gz
它能解决我的任务吗?
答案1
我认为可能有更好的方法来解决这个问题:tar
,zip
等都rar
共享一个属性(不同程度),即访问单个文件是
- 不太快
- 不透明:无法直接查看,需要到其他地方解压,然后查看
不过还有一种替代方法:使用带有文件系统的压缩图像文件(例如cloop
ext4)或带有压缩文件系统的纯文本图像文件(例如squashfs
) - 我通常使用后者。
这样,您可以通过互联网移动您的文件,并在目标系统上直接安装它并快速透明地访问其中的文件。
编辑
关于需要更新文件:我遇到了同样的问题,并使用mksquashfs
和解决了它overlayfs
。更改的文件进入覆盖层,原始文件保留在未更改的传输文件中(我认为这是一个重要功能)