It seems that in some recent upgrade here. Not always the entries we
expect are returned. So we should first check if they exist. As to not
spam the log.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
'MaxKeys' => 1,
'Delimiter' => '/',
]);
- $this->directoryCache[$path] = ($result['Contents'][0]['Key'] === rtrim($path, '/') . '/') || $result['CommonPrefixes'];
+
+ if ((isset($result['Contents'][0]['Key']) && $result['Contents'][0]['Key'] === rtrim($path, '/') . '/')
+ || isset($result['CommonPrefixes'])) {
+ $this->directoryCache[$path] = true;
+ } else {
+ $this->directoryCache[$path] = false;
+ }
} catch (S3Exception $e) {
if ($e->getStatusCode() === 403) {
$this->directoryCache[$path] = false;