]> source.dussan.org Git - nextcloud-server.git/commitdiff
Reuse cache for directory mtime/size if filesystem changes can be ignored 21728/head
authorJulius Härtl <jus@bitgrid.net>
Tue, 7 Jul 2020 08:22:22 +0000 (10:22 +0200)
committerJulius Härtl <jus@bitgrid.net>
Tue, 7 Jul 2020 08:22:22 +0000 (10:22 +0200)
Signed-off-by: Julius Härtl <jus@bitgrid.net>
apps/files_external/lib/Lib/Storage/AmazonS3.php

index 641a26b20eef956778cd8756b8790110116c0493..4a49f70dd58bced6d51997e7d648aa7d64928847 100644 (file)
@@ -45,6 +45,7 @@ use Aws\S3\S3Client;
 use Icewind\Streams\CallbackWrapper;
 use Icewind\Streams\IteratorDirectory;
 use OC\Cache\CappedMemoryCache;
+use OC\Files\Cache\CacheEntry;
 use OC\Files\ObjectStore\S3ConnectionTrait;
 use OC\Files\ObjectStore\S3ObjectTrait;
 use OCP\Constants;
@@ -374,6 +375,11 @@ class AmazonS3 extends \OC\Files\Storage\Common {
                                //folders don't really exist
                                $stat['size'] = -1; //unknown
                                $stat['mtime'] = time();
+                               $cacheEntry = $this->getCache()->get($path);
+                               if ($cacheEntry instanceof CacheEntry && $this->getMountOption('filesystem_check_changes', 1) !== 1) {
+                                       $stat['size'] = $cacheEntry->getSize();
+                                       $stat['mtime'] = $cacheEntry->getMTime();
+                               }
                        } else {
                                $stat['size'] = $this->getContentLength($path);
                                $stat['mtime'] = strtotime($this->getLastModified($path));