mirror of
https://github.com/nextcloud/server.git
synced 2026-02-27 18:37:17 +01:00
fix: handle case where we can't get the filesize after open in dav get
Signed-off-by: Robin Appelman <robin@icewind.nl>
This commit is contained in:
@@ -480,11 +480,15 @@ class File extends Node implements IFile {
|
||||
}
|
||||
}
|
||||
|
||||
$logger = Server::get(LoggerInterface::class);
|
||||
// comparing current file size with the one in DB
|
||||
// if different, fix DB and refresh cache.
|
||||
//
|
||||
$fsSize = $this->fileView->filesize($this->getPath());
|
||||
if ($this->getSize() !== $fsSize) {
|
||||
$logger = Server::get(LoggerInterface::class);
|
||||
if ($fsSize === false) {
|
||||
$logger->warning('file not found on storage after successfully opening it');
|
||||
throw new ServiceUnavailable($this->l10n->t('Failed to get size for : %1$s', [$this->getPath()]));
|
||||
} elseif ($this->getSize() !== $fsSize) {
|
||||
$logger->warning('fixing cached size of file id=' . $this->getId() . ', cached size was ' . $this->getSize() . ', but the filesystem reported a size of ' . $fsSize);
|
||||
|
||||
$this->getFileInfo()->getStorage()->getUpdater()->update($this->getFileInfo()->getInternalPath());
|
||||
|
||||
Reference in New Issue
Block a user