diff --git a/apps/dav/lib/Connector/Sabre/File.php b/apps/dav/lib/Connector/Sabre/File.php index e46bdcb298..9e927ff85e 100644 --- a/apps/dav/lib/Connector/Sabre/File.php +++ b/apps/dav/lib/Connector/Sabre/File.php @@ -140,6 +140,8 @@ class File extends Node implements IFile { list($partStorage) = $this->fileView->resolvePath($this->path); $needsPartFile = $partStorage->needsPartFile() && (strlen($this->path) > 1); + $view = \OC\Files\Filesystem::getView(); + if ($needsPartFile) { // mark file as partial while uploading (ignored by the scanner) $partFilePath = $this->getPartFileBasePath($this->path) . '.ocTransferId' . rand() . '.part'; @@ -147,11 +149,11 @@ class File extends Node implements IFile { // upload file directly as the final path $partFilePath = $this->path; - $this->emitPreHooks($exists); + if ($view && !$this->emitPreHooks($exists)) { + throw new Exception('Could not write to final file, canceled by hook'); + } } - $view = \OC\Files\Filesystem::getView(); - // the part file and target file might be on a different storage in case of a single file storage (e.g. single file share) /** @var \OC\Files\Storage\Storage $partStorage */ list($partStorage, $internalPartPath) = $this->fileView->resolvePath($partFilePath); @@ -159,9 +161,6 @@ class File extends Node implements IFile { list($storage, $internalPath) = $this->fileView->resolvePath($this->path); try { if (!$needsPartFile) { - if ($view && !$this->emitPreHooks($exists)) { - throw new Exception('Could not write to final file, canceled by hook'); - } $this->changeLock(ILockingProvider::LOCK_EXCLUSIVE); }