From 6212992c0a030a4768a217cc2b1fb93931e7ffdd Mon Sep 17 00:00:00 2001 From: enoch Date: Fri, 16 Mar 2018 11:51:27 +0800 Subject: [PATCH] fix(AmazonS3): fix loop $result['Contents'] error Invalid argument supplied for foreach() at /var/www/html/apps/files_external/lib/Lib/Storage/AmazonS3.php#295 --- .../lib/Lib/Storage/AmazonS3.php | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/apps/files_external/lib/Lib/Storage/AmazonS3.php b/apps/files_external/lib/Lib/Storage/AmazonS3.php index 553e531633..e9986f45c6 100644 --- a/apps/files_external/lib/Lib/Storage/AmazonS3.php +++ b/apps/files_external/lib/Lib/Storage/AmazonS3.php @@ -291,15 +291,17 @@ class AmazonS3 extends \OC\Files\Storage\Common { $files[] = substr(trim($prefix['Prefix'], '/'), strlen($path)); } } - foreach ($result['Contents'] as $object) { - if (isset($object['Key']) && $object['Key'] === $path) { - // it's the directory itself, skip - continue; + if (is_array($result['Contents'])) { + foreach ($result['Contents'] as $object) { + if (isset($object['Key']) && $object['Key'] === $path) { + // it's the directory itself, skip + continue; + } + $file = basename( + isset($object['Key']) ? $object['Key'] : $object['Prefix'] + ); + $files[] = $file; } - $file = basename( - isset($object['Key']) ? $object['Key'] : $object['Prefix'] - ); - $files[] = $file; } }