diff options
Diffstat (limited to 'apps/files_versions/lib/Storage.php')
-rw-r--r-- | apps/files_versions/lib/Storage.php | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/apps/files_versions/lib/Storage.php b/apps/files_versions/lib/Storage.php index 4b58d721583..6d53a19a518 100644 --- a/apps/files_versions/lib/Storage.php +++ b/apps/files_versions/lib/Storage.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors * SPDX-FileCopyrightText: 2016 ownCloud, Inc. @@ -8,6 +9,7 @@ namespace OCA\Files_Versions; use OC\Files\Filesystem; +use OC\Files\ObjectStore\ObjectStoreStorage; use OC\Files\Search\SearchBinaryOperator; use OC\Files\Search\SearchComparison; use OC\Files\Search\SearchQuery; @@ -418,8 +420,8 @@ class Storage { try { // TODO add a proper way of overwriting a file while maintaining file ids - if ($storage1->instanceOfStorage(\OC\Files\ObjectStore\ObjectStoreStorage::class) - || $storage2->instanceOfStorage(\OC\Files\ObjectStore\ObjectStoreStorage::class) + if ($storage1->instanceOfStorage(ObjectStoreStorage::class) + || $storage2->instanceOfStorage(ObjectStoreStorage::class) ) { $source = $storage1->fopen($internalPath1, 'r'); $result = $source !== false; @@ -430,11 +432,17 @@ class Storage { } else { $target = $storage2->fopen($internalPath2, 'w'); $result = $target !== false; - if ($target !== false) { + if ($result) { [, $result] = Files::streamCopy($source, $target, true); + } + // explicit check as S3 library closes streams already + if (is_resource($target)) { fclose($target); } } + } + // explicit check as S3 library closes streams already + if (is_resource($source)) { fclose($source); } |