Сжать большое количество маленьких файлов в разных папках
В нашем приложении мы сохраняем некоторые изображения в разных папках, таких как:
1
2
3
4
...
500
...
И внутри каждой папки есть большое количество изображений, размер которых (5–20 КБ).
Теперь мы обнаружили, что когда мы пытаемся передать эти файлы, мы должны сначала сжать их, используя winrar, однако это слишком дорого обходится!! Также два часа, чтобы сжать одну родительскую папку.
Фактически изображения в приложении являются изображениями карты, такими как фрагменты карты Google:
||
Поэтому мне интересно, есть ли хорошая идея сохранить / перенести эти небольшие, но большие файлы?
3 ответа
Подобные изображения, вероятно, уже будут сжаты, так что вы получите небольшой выигрыш в использовании полосы пропускания (и, следовательно, скорости передачи) от этапа сжатия.
Если процесс сжатия занимает много времени, когда ваш процессор занят, вместо этого попробуйте просто создать простой tar-файл (который объединяет все файлы в один архив без применения какого-либо сжатия). Я не знаю, что такое winrar, но большинство других инструментов сжатия (например, 7zip) могут генерировать tar-файл, так что я думаю, что winrar тоже может.
Если вы регулярно переносите весь набор файлов, но каждый раз добавляются / меняются только небольшие числа, вы можете посмотреть другие способы передачи, такие как rsync
, Вы не описываете ни одну из ваших сред, поэтому я не могу сказать, будет ли это возможно для вас, но если это rsync отлично справляется только с передачей изменений (значительно ускоряя передачу), а также всегда использует одно соединение, чтобы вы не пострадали от задержки на файл FTP и других протоколов - один файл следует за предыдущим по тому же соединению, как если бы передаваемые части были tar
вместе, так что вам не нужен этот дополнительный шаг, чтобы упаковать файлы в один и (и распаковать их в другой).
Эти изображения уже сжаты. Однако, чтобы увеличить скорость передачи, вы можете попробовать использовать rar в режиме архива. Это делает то же самое, что и tar: объединяет все файлы в один большой файл. Не используйте сжатие в вашем формате архива.