Merge pull request #5540 from owncloud/scanner-enhancments-master

Scanner enhancments master
remotes/origin/stable6
Thomas Müller 12 years ago
commit d48ba5a5bf
  1. 4
      apps/files_sharing/lib/cache.php
  2. 1
      lib/private/files/cache/cache.php
  3. 19
      lib/private/files/cache/scanner.php

@ -99,9 +99,13 @@ class Shared_Cache extends Cache {
$data['fileid'] = (int)$data['fileid'];
$data['size'] = (int)$data['size'];
$data['mtime'] = (int)$data['mtime'];
$data['storage_mtime'] = (int)$data['storage_mtime'];
$data['encrypted'] = (bool)$data['encrypted'];
$data['mimetype'] = $this->getMimetype($data['mimetype']);
$data['mimepart'] = $this->getMimetype($data['mimepart']);
if ($data['storage_mtime'] === 0) {
$data['storage_mtime'] = $data['mtime'];
}
return $data;
}
return false;

@ -144,6 +144,7 @@ class Cache {
$data['fileid'] = (int)$data['fileid'];
$data['size'] = (int)$data['size'];
$data['mtime'] = (int)$data['mtime'];
$data['storage_mtime'] = (int)$data['storage_mtime'];
$data['encrypted'] = (bool)$data['encrypted'];
$data['unencrypted_size'] = (int)$data['unencrypted_size'];
$data['storage'] = $this->storageId;

@ -62,8 +62,12 @@ class Scanner extends BasicEmitter {
* @return array with metadata of the file
*/
public function getData($path) {
if (!$this->storage->isReadable($path)) {
//cant read, nothing we can do
\OCP\Util::writeLog('OC\Files\Cache\Scanner', "!!! Path '$path' is not readable !!!", \OCP\Util::DEBUG);
return null;
}
$data = array();
if (!$this->storage->isReadable($path)) return null; //cant read, nothing we can do
$data['mimetype'] = $this->storage->getMimeType($path);
$data['mtime'] = $this->storage->filemtime($path);
if ($data['mimetype'] == 'httpd/unix-directory') {
@ -104,7 +108,9 @@ class Scanner extends BasicEmitter {
$newData = $data;
$cacheData = $this->cache->get($file);
if ($cacheData) {
$this->permissionsCache->remove($cacheData['fileid']);
if (isset($cacheData['fileid'])) {
$this->permissionsCache->remove($cacheData['fileid']);
}
if ($reuseExisting) {
// prevent empty etag
$etag = $cacheData['etag'];
@ -136,7 +142,14 @@ class Scanner extends BasicEmitter {
}
}
// Only update metadata that has changed
$newData = array_diff($data, $cacheData);
$newData = array_diff_assoc($data, $cacheData);
if (isset($newData['etag'])) {
$cacheDataString = print_r($cacheData, true);
$dataString = print_r($data, true);
\OCP\Util::writeLog('OC\Files\Cache\Scanner',
"!!! No reuse of etag for '$file' !!! \ncache: $cacheDataString \ndata: $dataString",
\OCP\Util::DEBUG);
}
}
}
if (!empty($newData)) {

Loading…
Cancel
Save