Наше приложение перезаписывает уже существующий ZIP-файл.
Zip-файл доступен для скачивания, для создания ZIP мы используем PHP ZipArchive.
Теперь вопрос:
Нужно ли мне создавать ZIP-файл TMP и переименовывать его в желаемое загружаемое имя файла, чтобы иметь элементарную операцию и постоянный доступ к действительному ZIP-файлу, или процесс создания ZIP ZipArchive уже атомарный?
Редактировать:
После тестирования с несколькими вызовами addFile, разделенными сном, создается впечатление, что файл создается / перезаписывается при заключительном вызове close. Но остается вопрос, является ли окончательное создание ZIP-файла атомарным?
После тестирования его с огромной структурой каталогов (создание zip-файла ~ 10 секунд) и «watch -n 0.1 unzip -t foo.zip» в результирующем ZIP-файле создается впечатление, что создание ZIP-файла является атомарным.
По крайней мере, я не получил никаких ошибок при тестировании файла ZIP.
Других решений пока нет …