diff --git a/lib/private/connector/sabre/objecttree.php b/lib/private/connector/sabre/objecttree.php
index cd3f081f7ccf73d4e8e31be9657f503ca73071f1..d1e179af2ec5eb468f3c92e8ba6780b70ebb5f49 100644
--- a/lib/private/connector/sabre/objecttree.php
+++ b/lib/private/connector/sabre/objecttree.php
@@ -38,7 +38,20 @@ class ObjectTree extends \Sabre_DAV_ObjectTree {
 			return $this->rootNode;
 		}
 
-		$info = $this->getFileView()->getFileInfo($path);
+		if (pathinfo($path, PATHINFO_EXTENSION) === 'part') {
+			// read from storage
+			$absPath = $this->getFileView()->getAbsolutePath($path);
+			list($storage, $internalPath) = Filesystem::resolvePath('/' . $absPath);
+			if ($storage) {
+				$scanner = $storage->getScanner($internalPath);
+				// get data directly
+				$info = $scanner->getData($internalPath);
+			}
+		}
+		else {
+			// read from cache
+			$info = $this->getFileView()->getFileInfo($path);
+		}
 
 		if (!$info) {
 			throw new \Sabre_DAV_Exception_NotFound('File with name ' . $path . ' could not be located');