|
|
|
|
@ -105,11 +105,11 @@ class Directory extends \OCA\DAV\Connector\Sabre\Node implements \Sabre\DAV\ICol
|
|
|
|
|
|
|
|
|
|
// only allow 1 process to upload a file at once but still allow reading the file while writing the part file
|
|
|
|
|
$node->acquireLock(ILockingProvider::LOCK_SHARED);
|
|
|
|
|
$this->fileView->lockFile($path . '.upload.part', ILockingProvider::LOCK_EXCLUSIVE);
|
|
|
|
|
$this->fileView->lockFile($this->path . '/' . $name . '.upload.part', ILockingProvider::LOCK_EXCLUSIVE);
|
|
|
|
|
|
|
|
|
|
$result = $node->put($data);
|
|
|
|
|
|
|
|
|
|
$this->fileView->unlockFile($path . '.upload.part', ILockingProvider::LOCK_EXCLUSIVE);
|
|
|
|
|
$this->fileView->unlockFile($this->path . '/' . $name . '.upload.part', ILockingProvider::LOCK_EXCLUSIVE);
|
|
|
|
|
$node->releaseLock(ILockingProvider::LOCK_SHARED);
|
|
|
|
|
return $result;
|
|
|
|
|
} catch (\OCP\Files\StorageNotAvailableException $e) {
|
|
|
|
|
|