@ -51,6 +51,7 @@ use OCP\Files\InvalidContentException;
use OCP\Files\InvalidPathException;
use OCP\Files\LockNotAcquiredException;
use OCP\Files\NotPermittedException;
use OCP\Files\Storage;
use OCP\Files\StorageNotAvailableException;
use OCP\Lock\ILockingProvider;
use OCP\Lock\LockedException;
@ -135,8 +136,9 @@ class File extends Node implements IFile {
}
}
/** @var Storage $partStorage */
list($partStorage) = $this->fileView->resolvePath($this->path);
$needsPartFile = $this->needsPartFile($partStorage ) & & (strlen($this->path) > 1);
$needsPartFile = $partStorage->needsPartFile( ) & & (strlen($this->path) > 1);
if ($needsPartFile) {
// mark file as partial while uploading (ignored by the scanner)
@ -443,8 +445,9 @@ class File extends Node implements IFile {
}
if ($chunk_handler->isComplete()) {
/** @var Storage $storage */
list($storage,) = $this->fileView->resolvePath($path);
$needsPartFile = $this->needsPartFile($storage );
$needsPartFile = $storage->needsPartFile( );
$partFile = null;
$targetPath = $path . '/' . $info['name'];
@ -529,21 +532,6 @@ class File extends Node implements IFile {
return null;
}
/**
* Returns whether a part file is needed for the given storage
* or whether the file can be assembled/uploaded directly on the
* target storage.
*
* @param \OCP\Files\Storage $storage
* @return bool true if the storage needs part file handling
*/
private function needsPartFile($storage) {
// TODO: in the future use ChunkHandler provided by storage
return !$storage->instanceOfStorage('OCA\Files_Sharing\External\Storage') & &
!$storage->instanceOfStorage('OC\Files\Storage\OwnCloud') & &
$storage->needsPartFile();
}
/**
* Convert the given exception to a SabreException instance
*