Есть ли способ архивировать каталог на Amazon S3 и загружать его динамически в приложение - PullRequest
0 голосов
/ 12 марта 2020

Мне нужно заархивировать файлы / папки, которые есть на Amazon S3 (если пользователь нажимает на загрузку папки в моем приложении ). Другими словами, мне нужно создать zip-файл на лету из файлов, хранящихся на S3, используя php.

. Я создал одну функцию загрузки в своем приложении php, но у меня вопрос к нескольким загрузка файла (в виде zip-файла).

Заранее спасибо

1 Ответ

0 голосов
/ 13 марта 2020

Да, похоже, что Amazon S3 не предоставляет эту функциональность, и мне пришлось делать это самостоятельно на уровне приложения. Я использовал ZipArchive для чтения файлов из S3 и архивирования их на сервере.

$client->registerStreamWrapper();

$files = $client->getIterator('ListObjects', [
    'Bucket' => $bucket,
    'Prefix' => $directory_name
]);

$file = get_temp_file();
$zip = new ZipArchive(); 
$zip->open($file, ZipArchive::CREATE);

foreach ($files as $f) {
    $contents = file_get_contents("s3://{$bucket}/{$f['Key']}");
    $zip->addFromString($file_name, $contents);
}

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