PHP ZipArchive на GAE возвращает файловую систему только для чтения - PullRequest
0 голосов
/ 20 мая 2019

Я пытался использовать Google App Engine и PHP ZipArchive, чтобы заархивировать один файл в хранилище Could Storage, а затем сохранить этот zip-файл в хранилище.Я в основном добавлял проверки ошибок к нему и перешел к сообщению Файловая система только для чтения.Ведро и приложение находятся в одном проекте.Не уверен, куда идти отсюда.Есть идеи?Ниже приведен мой тестовый код и результат.

$zip = new ZipArchive();
$filename = "gs://my_bucket/new_zip_file.zip";
$toadd = 'gs://my_bucket/MakeaZip.txt';

if (file_exists($toadd)) {
    echo "The file $toadd exists<br>";
} else {
    echo "The file $toadd does not exist<br>";
}

if (is_writable('gs://my_bucket')) {
    echo 'Folder is writable<br>';
} else {
    echo 'Folder not writable<br>';
}

if ($zip->open($filename, ZipArchive::CREATE)!==TRUE) {
    echo 'Can not open '.$filename.'<br>';
} else {
    echo 'Can open '.$filename.'<br>';
}

$content = file_get_contents($toadd);
$zip->addFromString(pathinfo ( $toadd, PATHINFO_BASENAME), $content);

echo "numfiles: " . $zip->numFiles . '<br>';
echo "status:" . $zip->status . '<br>';
echo 'GetStatusString: '.$zip->getStatusString() . '<br>';
$ret = $zip->close();
echo 'Closed with: ' . ($ret ? "true" : "false") . '<br>';
echo 'GetStatusString: '.$zip->getStatusString() . '<br>';

Результат из приведенного выше кода:

Файл gs: //my_bucket/MakeaZip.txt существует
Папка доступна для записи
Может открыть gs: //my_bucket/new_zip_file.zip
numfiles: 1
status: 0
GetStatusString: Нет ошибок
Закрыт с: false
GetStatusString: Ошибка при создании временного файла: Файловая система только для чтения

1 Ответ

0 голосов
/ 20 мая 2019

В облачном хранилище Google нет официальной функциональности для поддержки архивирования.Для этого существует запрос на открытую функцию, однако в настоящее время нет планов его реализации.Вы можете найти здесь запрос функции и следить за любыми обновлениями, а также можете проверить this для некоторых предложенных пользователем обходных путей, использующих PHP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...