mirror of
https://github.com/nextcloud/server.git
synced 2026-05-28 04:32:30 -04:00
Merge pull request #38892 from nextcloud/obj-store-copy-list-source-cache-26
This commit is contained in:
commit
989721bca6
1 changed files with 6 additions and 5 deletions
|
|
@ -37,6 +37,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;
|
||||
|
|
@ -570,7 +571,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;
|
||||
}
|
||||
}
|
||||
|
|
@ -588,12 +589,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) {
|
||||
|
|
@ -602,8 +603,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…
Reference in a new issue