Я получаю эту ошибку каждый раз, когда пытаюсь разархивировать свой файл:
Archive: Server.zip
End-of-central-directory signature not found. Either this file is not
a zipfile, or it constitutes one disk of a multi-part archive. In the
latter case the central directory and zipfile comment will be found on
the last disk(s) of this archive.
unzip: cannot find zipfile directory in one of Server.zip or
Server.zip.zip, and cannot find Server.zip.ZIP, period.
Я заархивировал его с помощью 7zip, но он все еще не работает. Я читал кое-что о MD5, нужно ли это, чтобы разархивировать?
Я тестировал с 7z
, zip
и unzip
, сознательно смешивая программы, но я не смог воспроизвести проблему. Однако это вполне может быть характерно для сжатых данных.
Поскольку 7z
использует формат 7z по умолчанию, и расширения имени файла не имеют значения, я сначала подумал, что это создаст файл формата 7z просто с именем zip
, но оказывается, что это не то, что недружелюбно для пользователя:
7z a 1.zip 2
действительно создает правильный файл 1.zip
даже без опции -t zip
, которая задает формат.
7z a 1 2
однако создает 1.7z
и 7z a -t zip 1 2
создает 1.zip
, как и ожидалось.
В целом, неплохо было бы
использовать одну и ту же программу для упаковки и распаковки архива:
7z a Server.zip file1 file2 dir1/ # add files
7z x Server.zip # extract with full paths
7z e Server.zip # extract IGNORING paths
zip Server.zip file1 file2 dir1/ # add files
unzip Server.zip # extract with full paths
используйте криптографический хеш для проверки правильности передачи архива:
На вашем сервере сохраните хэш-сумму с md5sum
, sha1sum
, sha224sum
, sha256sum
, sha384sum
или sha512sum
1 sup> (все с одинаковым синтаксисом), например
sha1sum Server.zip otherfile.zip > sha1hashsums
sha1hashsums
. Проверить файл (ы) zip, например,
$ sha1sum -c sha1hashsums
Server.zip: FAILED
otherfile.zip: OK
1 sup> Наиболее важным отличием между ними является размер хэша, более длинный хэш является более безопасным. MD5 создает 128-битный хеш, SHA1 160-битный, остальные имеют размер хэш-суммы в своем имени, например, sha512sum
для 512-битного хэша. Остальное я оставлю в Википедии, см. Ссылки.