Я использую механизм приложений Google и хочу создать zip-архив с расширением zip, которое поддерживается в текущей версии. Проблема в том, что каждый раз, когда я вызываю ZipArchive::close, он возвращает false, а ZipArchive::getStatusString возвращает «Не удалось создать временный файл: файловая система только для чтения». Я создаю zip-файл в облачном хранилище следующим образом:
$zip = new ZipArchive();
$zip->open("gs://whatever/somethig.zip", ZipArchive::OVERWRITE); //returns true
$zip->addFromString('file.txt', "some random data"); //returns true
$zip->numFiles; // = 1
$zip->close(); // returns false
$zip->getStatusString(); //returns Failure to create temporary file: Read-only file system
и он должен быть доступен для записи, на самом деле это с file_set_content или чем-то еще. Я попробовал тот же код с несколькими вариантами:
- уже существующий zip-файл;
- не существующий zip-файл;
- ZipArchive::CREATE в качестве второго параметра вызова ZipArchive::open
- Использование ZipArchive::addFile для добавления файла из облачного хранилища
Возможно, он пытается создать временный файл в другом месте, а не в облачном хранилище, но то, что я делаю, является очень распространенным сценарием, и я сомневаюсь, что это ошибка движка приложения, ведь они утверждают, что поддерживают zip расширение здесь.
Кто-нибудь знает, в чем может быть проблема?
Спасибо.