压缩不同文件夹中的大量小文件

时间:2011-06-23 14:12:42

标签: image compression html-compression

在我们的应用程序中,我们将一些图像保存在不同的文件夹中,如:

1
2
3
4
...
500
...

在每个文件夹中都有大量图像,大小为(5kb-20kb)。

现在我们发现当我们尝试传输这些文件时,我们必须首先使用winrar压缩它们,但是它花费的时间太长了!还有两个小时来压缩一个父文件夹。

事实上,应用程序中的图像是地图图像,如谷歌地图图块:

http://mt1.google.com/vt/lyrs=m@156067651&hl=en&x=27&y=48&z=7&s=G || enter image description here

所以我想知道保存/传输这些小而大量的文件是否有好主意?

3 个答案:

答案 0 :(得分:1)

这样的图像可能已经被压缩,因此从压缩步骤中获得的带宽使用(以及传输速度)几乎没有增加。

如果压缩过程占用CPU繁忙的时间,那么请尝试只创建一个普通的tar文件(将所有文件连接到一个存档而不应用任何压缩)。我不知道winrar,但大多数其他压缩工具(如7zip)可以生成tar文件,所以我猜winrar也可以。

如果您定期传输整个文件集,但每次只添加/更改小数字,您可能需要查看其他传输方法,如rsync。您没有描述您的任何一个环境,所以我无法判断您是否可以使用它,但如果它是rsync,那么只能传输更改(显着加快传输)并且它也始终使用一个连接,所以你不会受到FTP和其他协议的每个文件延迟的影响 - 一个文件跟随前一个文件在同一个连接上,就好像正在传输的部分被tar编辑在一起所以你没有需要额外的步骤将文件打包到一个(并在另一个打开它们)。

答案 1 :(得分:0)

这些图像已经过压缩。但是,为了提高传输速度,您可以尝试在“存档”模式下使用rar。这与tar的作用相同:将所有文件连接成一个大文件。不要在归档格式中使用任何压缩。

答案 2 :(得分:0)

也许您可以使用像Snappy这样的快速压缩库。但是,它只能压缩单个文件,并且您肯定不希望单独传输每个文件。我会为此创建一个未压缩的TAR存档。