2016-08-19 7 views
1

Наше приложение перезаписывает уже существующий ZIP-файл. Почтовый файл доступен для загрузки, для создания ZIP мы используем PHP ZipArchive.Является ли PHP Zip созданием (перезаписыванием) атомной операции?

Теперь вопрос: Нужно ли мне создать ZIP-файл TMP и переименовать его в нужное загружаемое имя файла, чтобы иметь атомную операцию и все время доступа к действительному ZIP-файлу, или это процесс создания ZIP-архива ZipArchive уже атомное?

Редактировать: После тестирования с несколькими вызовами addFile, разделенными на сон, кажется, что файл создается/перезаписывается при последнем закрытии вызова. Но остается вопрос, является ли итоговый файл ZIP-файла атомарным?

+0

Я не знаю, но это может быть проще, чем вы думаете, чтобы проверить (и исправить). Замедлить процесс затирания и попытаться получить доступ к файлу с другой операцией во время zipping; посмотрите, есть ли у вас поврежденный файл. – BeetleJuice

+0

У вас есть окончательно право, но спрашивать быстрее, как тестирование;) Возможно, кто-то это уже знает. Если нет, тестирование будет последним вариантом. –

+2

* «спрашивать быстрее [чем] тестирование» * Это грубо - вы говорите, что ваше время более ценно, чем время тех, кого вы просите помочь. –

ответ

0

После тестирования его с огромной структурой каталогов (создание zip требуется ~ 10 секунд) и «watch -n 0.1 unzip -t foo.zip» в результирующем файле ZIP, похоже, что создание ZIP-файла атомное. По крайней мере, у меня не было ошибок при тестировании ZIP-файла.