From 608ddaa969dc979bc2dbabd8281ce4ddee69293d Mon Sep 17 00:00:00 2001 From: Hannah Ward Date: Fri, 26 Oct 2018 11:01:44 +0100 Subject: [PATCH] fix: aws would error if asked to del non-existing --- app/Lib/Tools/AWSS3Client.php | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/app/Lib/Tools/AWSS3Client.php b/app/Lib/Tools/AWSS3Client.php index 1e56307a8..c04749706 100644 --- a/app/Lib/Tools/AWSS3Client.php +++ b/app/Lib/Tools/AWSS3Client.php @@ -77,18 +77,25 @@ class AWSS3Client } public function deleteDirectory($prefix) { - $keys = $s3->listObjects([ + $keys = $this->__client->listObjectsV2([ 'Bucket' => $this->__settings['bucket_name'], 'Prefix' => $prefix - ]) ->getPath('Contents/*/Key'); - - $s3->deleteObjects([ - 'Bucket' => $bucket, - 'Delete' => [ - 'Objects' => array_map(function ($key) { - return ['Key' => $key]; - }, $keys) - ], ]); + + $toDelete = array_map( + function ($key) { + return ['Key' => $key['Key']]; + }, + is_array($keys['Contents'])?$keys['Contents']:[] + ); + + if (sizeof($toDelete) != 0) { + $this->__client->deleteObjects([ + 'Bucket' => $this->__settings['bucket_name'], + 'Delete' => [ + 'Objects' => $toDelete + ] + ]); + } } }