Я продолжаю получать эту ошибку каждый раз, когда я пытаюсь разархивировать мой файл:
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 (все следуют одному и тому же синтаксису), например sha1sum Server.zip otherfile.zip > sha1hashsums
Передавать как zip-файл (ы), так и файл sha1hashsums. Проверяйте zip-файл (ы) с помощью, например, $ sha1sum -c sha1hashsums
Server.zip: FAILED
otherfile.zip: OK
1 Самое важное различие между ними - размер хеша, более длинный хеш более безопасен. Формат 7z создает 128-битный хеш, SHA1 - 160-битный, остальные несут размер хэш-суммы в своем имени, например. sha512sum для 512-битного хэша. Я оставлю все остальное в Википедии, см. Ссылки.
Я тестировал с 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 (все следуют одному и тому же синтаксису), например sha1sum Server.zip otherfile.zip > sha1hashsums
Передавать как zip-файл (ы), так и файл sha1hashsums. Проверяйте zip-файл (ы) с помощью, например, $ sha1sum -c sha1hashsums
Server.zip: FAILED
otherfile.zip: OK
1 Самое важное различие между ними - размер хеша, более длинный хеш более безопасен. Формат 7z создает 128-битный хеш, SHA1 - 160-битный, остальные несут размер хэш-суммы в своем имени, например. sha512sum для 512-битного хэша. Я оставлю все остальное в Википедии, см. Ссылки.