[Pkg-owncloud-commits] [owncloud] 31/145: Allow getting info or renaming part files through WebDAV

David Prévot taffit at moszumanska.debian.org
Wed Feb 26 16:27:40 UTC 2014


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository owncloud.

commit 9404389d83ec15874a108d85043453c2fd546e26
Author: Vincent Petry <pvince81 at owncloud.com>
Date:   Wed Nov 27 12:46:12 2013 +0100

    Allow getting info or renaming part files through WebDAV
    
    When mounting an ownCloud (backend OC) inside another ownCloud (frontend
    OC), the frontend OC will use WebDAV to upload file, which will create
    part files. These part files need to be accessible for the frontend OC
    to rename them to the actual file name.
    
    This fix leaves the file cache untouched but gives direct access to part
    file info when requested.
    
    This means that part file can be accessed only when their path and name
    are known. These won't appear in file listtings.
    
    Fixes #6068
---
 lib/private/connector/sabre/objecttree.php | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/lib/private/connector/sabre/objecttree.php b/lib/private/connector/sabre/objecttree.php
index cd3f081..d1e179a 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');

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud.git



More information about the Pkg-owncloud-commits mailing list