关于image:压缩不同文件夹中的大量小文件

compress large amount of small files in different folders

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

1
2
3
4
5
6
7
1
2
3
4
...
500
...

每个文件夹中都有大量的图像,它们的大小是(5KB-20KB)。

现在我们发现,当我们试图传输这些文件时,我们必须首先使用winrar压缩它们,但是要花费很多时间!!同时压缩一个父文件夹需要两个小时。

事实上,应用程序中的图像是像Google地图瓷砖一样的地图图像:

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

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


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

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

如果您定期传输整个文件集,但每次只添加/更改少量的文件,那么您可能需要研究其他传输方法,如rsync。您没有描述任何一个环境,因此我无法判断这是否可能对您可用,但是如果它是rsync,那么它只在传输更改(显著加快传输速度)方面做得很好,而且它也总是使用一个连接,因此您不会受到ftp和其他协议的每个文件延迟的影响-一个文件遵循前一个连接与正在传输的部分连接相同,但已将它们合并在一起,因此您不需要执行额外的步骤来在一个和(并在另一个)处打包文件。


也许你可以使用像snappy这样的快速压缩库。但是,它只能压缩一个文件,您肯定不想单独传输每个文件。我将为此创建一个未压缩的tar存档。


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