|
|
@@ -36,6 +36,11 @@ class Scanner extends BasicEmitter { |
|
|
|
*/ |
|
|
|
private $cache; |
|
|
|
|
|
|
|
/** |
|
|
|
* @var \OC\Files\Cache\Permissions $permissionsCache |
|
|
|
*/ |
|
|
|
private $permissionsCache; |
|
|
|
|
|
|
|
const SCAN_RECURSIVE = true; |
|
|
|
const SCAN_SHALLOW = false; |
|
|
|
|
|
|
@@ -46,6 +51,7 @@ class Scanner extends BasicEmitter { |
|
|
|
$this->storage = $storage; |
|
|
|
$this->storageId = $this->storage->getId(); |
|
|
|
$this->cache = $storage->getCache(); |
|
|
|
$this->permissionsCache = $storage->getPermissionsCache(); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
@@ -96,7 +102,11 @@ class Scanner extends BasicEmitter { |
|
|
|
} |
|
|
|
} |
|
|
|
$newData = $data; |
|
|
|
if ($reuseExisting and $cacheData = $this->cache->get($file)) { |
|
|
|
$cacheData = $this->cache->get($file); |
|
|
|
if ($cacheData) { |
|
|
|
$this->permissionsCache->remove($cacheData['fileid']); |
|
|
|
} |
|
|
|
if ($reuseExisting and $cacheData) { |
|
|
|
// prevent empty etag |
|
|
|
$etag = $cacheData['etag']; |
|
|
|
$propagateETagChange = false; |
|
|
@@ -104,7 +114,6 @@ class Scanner extends BasicEmitter { |
|
|
|
$etag = $data['etag']; |
|
|
|
$propagateETagChange = true; |
|
|
|
} |
|
|
|
|
|
|
|
// only reuse data if the file hasn't explicitly changed |
|
|
|
if (isset($data['mtime']) && isset($cacheData['mtime']) && $data['mtime'] === $cacheData['mtime']) { |
|
|
|
if (($reuseExisting & self::REUSE_SIZE) && ($data['size'] === -1)) { |
|
|
@@ -182,7 +191,7 @@ class Scanner extends BasicEmitter { |
|
|
|
$newChildren = array(); |
|
|
|
if ($this->storage->is_dir($path) && ($dh = $this->storage->opendir($path))) { |
|
|
|
\OC_DB::beginTransaction(); |
|
|
|
if(is_resource($dh)) { |
|
|
|
if (is_resource($dh)) { |
|
|
|
while (($file = readdir($dh)) !== false) { |
|
|
|
$child = ($path) ? $path . '/' . $file : $file; |
|
|
|
if (!Filesystem::isIgnoredDir($file)) { |