Merge pull request #22859 from owncloud/cache-results-in-memcache-for-is-owncloud

Cache results of testRemoteUrl
This commit is contained in:
Thomas Müller 2016-03-06 20:00:47 +01:00
Родитель 6dcf70f244 63bd6b25db
Коммит f2088cafb8
1 изменённых файлов: 19 добавлений и 2 удалений

21
apps/files_sharing/lib/external/storage.php поставляемый
Просмотреть файл

@ -54,6 +54,11 @@ class Storage extends DAV implements ISharedStorage {
*/
private $token;
/**
* @var \OCP\ICacheFactory
*/
private $memcacheFactory;
/**
* @var \OCP\ICertificateManager
*/
@ -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;
}
/**