Мой сценарий принимает файлы, которые были переданы в функцию, и объединяет / сохраняет их как сжатый файл с использованием ZipArchive в каталог на моем сервере.
Затем я загружаю сжатый файл в AWS S3, и удалите загруженный файл с моего сервера.
Однако есть способ сохранить ZipArchive как переменный или временный файл и загрузить его непосредственно в AWS без сохранения и последующего удаления из моего сервер?
$files = $_GET['json'];
$zipFolder = new ZipArchive;
$zipPath = "folder/compressedfile.zip";
if ($zipFolder->open($zipPath, ZipArchive::CREATE) === TRUE) {
foreach ($files as $file) {
$textString = $file['text'];
$zipFolder->addFromString($file['name'] . '.txt', $textString);
}
}
$zipFolder->close();
$s3Client = new S3Client([
'region' => '--region--',
'version' => 'latest',
'credentials' => [
'key' => '--key--',
'secret' => '--secret--',
],
]);
$bucketName = '--bucket--';
$result = $s3Client->putObject([
'Bucket' => $bucketName,
'Key' => 'compressedfile.zip',
'SourceFile' => $zipPath
]);
unlink($zipPath);