use returned file id for object store copy

Signed-off-by: Robin Appelman <robin@icewind.nl>
This commit is contained in:
Robin Appelman 2021-03-08 18:50:33 +01:00 committed by backportbot[bot]
parent 603ec9be0c
commit cc1a5d5ced
1 changed files with 6 additions and 6 deletions

View File

@ -32,6 +32,7 @@ namespace OC\Files\ObjectStore;
use Icewind\Streams\CallbackWrapper; use Icewind\Streams\CallbackWrapper;
use Icewind\Streams\CountWrapper; use Icewind\Streams\CountWrapper;
use Icewind\Streams\IteratorDirectory; use Icewind\Streams\IteratorDirectory;
use OC\Files\Cache\Cache;
use OC\Files\Cache\CacheEntry; use OC\Files\Cache\CacheEntry;
use OC\Files\Storage\PolyFill\CopyDirectory; use OC\Files\Storage\PolyFill\CopyDirectory;
use OCP\Files\Cache\ICacheEntry; use OCP\Files\Cache\ICacheEntry;
@ -556,14 +557,13 @@ class ObjectStoreStorage extends \OC\Files\Storage\Common {
$sourceUrn = $this->getURN($sourceEntry->getId()); $sourceUrn = $this->getURN($sourceEntry->getId());
$cache->copyFromCache($cache, $sourceEntry, $to); if (!$cache instanceof Cache) {
$targetEntry = $cache->get($to); throw new \Exception("Invalid source cache for object store copy");
if (!$targetEntry) {
throw new \Exception('Target not in cache after copy');
} }
$targetUrn = $this->getURN($targetEntry->getId()); $targetId = $cache->copyFromCache($cache, $sourceEntry, $to);
$targetUrn = $this->getURN($targetId);
try { try {
$this->objectStore->copyObject($sourceUrn, $targetUrn); $this->objectStore->copyObject($sourceUrn, $targetUrn);