diff options
author | Thomas Müller <thomas.mueller@tmit.eu> | 2016-03-06 21:57:53 +0300 |
---|---|---|
committer | Thomas Müller <thomas.mueller@tmit.eu> | 2016-03-06 21:57:53 +0300 |
commit | 6f4712a314e394c5b818427cd071e8a1a15b1d33 (patch) | |
tree | 1d6d9077d156dedd91b87f227aba887b69f68201 | |
parent | d043b6ba9107930a6c25325957e6c83bc7aacd8d (diff) | |
parent | 71e3f7f8662db3bfb095a4ea966e6e3d3746a861 (diff) |
Merge pull request #22884 from owncloud/backport-cache-results
[stable9] Cache results of testRemoteUrl
-rw-r--r-- | apps/files_sharing/lib/external/storage.php | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/apps/files_sharing/lib/external/storage.php b/apps/files_sharing/lib/external/storage.php index 41f7bef589b..87f5a3598fb 100644 --- a/apps/files_sharing/lib/external/storage.php +++ b/apps/files_sharing/lib/external/storage.php @@ -55,6 +55,11 @@ class Storage extends DAV implements ISharedStorage { private $token; /** + * @var \OCP\ICacheFactory + */ + private $memcacheFactory; + + /** * @var \OCP\ICertificateManager */ private $certificateManager; @@ -67,8 +72,9 @@ class Storage extends DAV implements ISharedStorage { private $manager; public function __construct($options) { + $this->memcacheFactory = \OC::$server->getMemCacheFactory(); $discoveryManager = new DiscoveryManager( - \OC::$server->getMemCacheFactory(), + $this->memcacheFactory, \OC::$server->getHTTPClientService() ); @@ -241,10 +247,21 @@ class Storage extends DAV implements ISharedStorage { } } + /** + * @param string $url + * @return bool + */ private function testRemoteUrl($url) { + $cache = $this->memcacheFactory->create('files_sharing_remote_url'); + if($result = $cache->get($url)) { + return (bool)$result; + } + $result = file_get_contents($url); $data = json_decode($result); - return (is_object($data) and !empty($data->version)); + $returnValue = (is_object($data) and !empty($data->version)); + $cache->set($url, $returnValue); + return $returnValue; } /** |