Browse Source

use source cache when listing folder during recursive copy

Signed-off-by: Robin Appelman <robin@icewind.nl>
tags/v28.0.0beta1
Robin Appelman 1 year ago
parent
commit
de85610385
1 changed files with 6 additions and 5 deletions
  1. 6
    5
      lib/private/Files/ObjectStore/ObjectStoreStorage.php

+ 6
- 5
lib/private/Files/ObjectStore/ObjectStoreStorage.php View File

@@ -38,6 +38,7 @@ use Icewind\Streams\IteratorDirectory;
use OC\Files\Cache\Cache;
use OC\Files\Cache\CacheEntry;
use OC\Files\Storage\PolyFill\CopyDirectory;
use OCP\Files\Cache\ICache;
use OCP\Files\Cache\ICacheEntry;
use OCP\Files\FileInfo;
use OCP\Files\GenericFileException;
@@ -593,7 +594,7 @@ class ObjectStoreStorage extends \OC\Files\Storage\Common implements IChunkedFil
if (is_array($sourceEntryData) && array_key_exists('scan_permissions', $sourceEntryData)) {
$sourceEntry['permissions'] = $sourceEntryData['scan_permissions'];
}
$this->copyInner($sourceEntry, $targetInternalPath);
$this->copyInner($sourceStorage->getCache(), $sourceEntry, $targetInternalPath);
return true;
}
}
@@ -611,12 +612,12 @@ class ObjectStoreStorage extends \OC\Files\Storage\Common implements IChunkedFil
throw new NotFoundException('Source object not found');
}

$this->copyInner($sourceEntry, $target);
$this->copyInner($cache, $sourceEntry, $target);

return true;
}

private function copyInner(ICacheEntry $sourceEntry, string $to) {
private function copyInner(ICache $sourceCache, ICacheEntry $sourceEntry, string $to) {
$cache = $this->getCache();

if ($sourceEntry->getMimeType() === FileInfo::MIMETYPE_FOLDER) {
@@ -625,8 +626,8 @@ class ObjectStoreStorage extends \OC\Files\Storage\Common implements IChunkedFil
}
$this->mkdir($to);

foreach ($cache->getFolderContentsById($sourceEntry->getId()) as $child) {
$this->copyInner($child, $to . '/' . $child->getName());
foreach ($sourceCache->getFolderContentsById($sourceEntry->getId()) as $child) {
$this->copyInner($sourceCache, $child, $to . '/' . $child->getName());
}
} else {
$this->copyFile($sourceEntry, $to);

Loading…
Cancel
Save