Only update the filecache entry once the file has been written to S3
If we already update before we have no way to revert if the upload fails. Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
This commit is contained in:
parent
704f515175
commit
952ec3370e
|
@ -446,7 +446,13 @@ class ObjectStoreStorage extends \OC\Files\Storage\Common {
|
||||||
|
|
||||||
$exists = $this->getCache()->inCache($path);
|
$exists = $this->getCache()->inCache($path);
|
||||||
$uploadPath = $exists ? $path : $path . '.part';
|
$uploadPath = $exists ? $path : $path . '.part';
|
||||||
$fileId = $this->getCache()->put($uploadPath, $stat);
|
|
||||||
|
if ($exists) {
|
||||||
|
$fileId = $stat['fileid'];
|
||||||
|
} else {
|
||||||
|
$fileId = $this->getCache()->put($uploadPath, $stat);
|
||||||
|
}
|
||||||
|
|
||||||
$urn = $this->getURN($fileId);
|
$urn = $this->getURN($fileId);
|
||||||
try {
|
try {
|
||||||
//upload to object storage
|
//upload to object storage
|
||||||
|
@ -461,6 +467,7 @@ class ObjectStoreStorage extends \OC\Files\Storage\Common {
|
||||||
if (is_resource($countStream)) {
|
if (is_resource($countStream)) {
|
||||||
fclose($countStream);
|
fclose($countStream);
|
||||||
}
|
}
|
||||||
|
$stat['size'] = $size;
|
||||||
} else {
|
} else {
|
||||||
$this->objectStore->writeObject($urn, $stream);
|
$this->objectStore->writeObject($urn, $stream);
|
||||||
}
|
}
|
||||||
|
@ -484,7 +491,9 @@ class ObjectStoreStorage extends \OC\Files\Storage\Common {
|
||||||
throw $ex; // make this bubble up
|
throw $ex; // make this bubble up
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$exists) {
|
if ($exists) {
|
||||||
|
$this->getCache()->update($fileId, $stat);
|
||||||
|
} else {
|
||||||
if ($this->objectStore->objectExists($urn)) {
|
if ($this->objectStore->objectExists($urn)) {
|
||||||
$this->getCache()->move($uploadPath, $path);
|
$this->getCache()->move($uploadPath, $path);
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in New Issue