private function getBucketContents() { $cacheFile = $this->cacheDir . '/s3browser-' . $this->s3Bucket; $contents = null; // get from cache if valid if ($this->cacheDuration && file_exists($cacheFile)) { $cacheAge = time() - filectime($cacheFile); if ($cacheAge < $this->cacheDuration) { $contents = unserialize(file_get_contents($cacheFile)); } } // hit s3 if we didn't have anything cached if (!$contents) { $s3 = new S3($this->s3AccessKey, $this->s3SecretKey, $this->s3useSSL, $this->s3endPoint); $contents = $s3->getBucket($this->s3Bucket); // we weren't able to access the bucket if (!is_array($contents)) { return null; } // save if caching is enabled if ($this->cacheDuration) { file_put_contents($cacheFile, serialize($contents)); } } return $contents; }