Browse Source
Merge pull request #47346 from nextcloud/encryption-key-copy-mountpoint
pull/47259/head
John Molakvoæ
2 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with
6 additions and
5 deletions
-
lib/private/Files/SetupManager.php
-
lib/private/Files/Storage/Wrapper/Encryption.php
|
|
|
@ -107,8 +107,9 @@ class SetupManager { |
|
|
|
$prevLogging = Filesystem::logWarningWhenAddingStorageWrapper(false); |
|
|
|
|
|
|
|
Filesystem::addStorageWrapper('mount_options', function ($mountPoint, IStorage $storage, IMountPoint $mount) { |
|
|
|
if ($mount->getOptions() && $storage->instanceOfStorage(Common::class)) { |
|
|
|
$storage->setMountOptions($mount->getOptions()); |
|
|
|
if ($storage->instanceOfStorage(Common::class)) { |
|
|
|
$options = array_merge($mount->getOptions(), ['mount_point' => $mountPoint]); |
|
|
|
$storage->setMountOptions($options); |
|
|
|
} |
|
|
|
return $storage; |
|
|
|
}); |
|
|
|
|
|
|
|
@ -14,6 +14,7 @@ use OC\Files\Cache\CacheEntry; |
|
|
|
use OC\Files\Filesystem; |
|
|
|
use OC\Files\Mount\Manager; |
|
|
|
use OC\Files\ObjectStore\ObjectStoreStorage; |
|
|
|
use OC\Files\Storage\Common; |
|
|
|
use OC\Files\Storage\LocalTempFileTrait; |
|
|
|
use OC\Memcache\ArrayCache; |
|
|
|
use OCP\Cache\CappedMemoryCache; |
|
|
|
@ -776,9 +777,8 @@ class Encryption extends Wrapper { |
|
|
|
|
|
|
|
// first copy the keys that we reuse the existing file key on the target location
|
|
|
|
// and don't create a new one which would break versions for example.
|
|
|
|
$mount = $this->mountManager->findByStorageId($sourceStorage->getId()); |
|
|
|
if (count($mount) >= 1) { |
|
|
|
$mountPoint = $mount[0]->getMountPoint(); |
|
|
|
if ($sourceStorage->instanceOfStorage(Common::class) && $sourceStorage->getMountOption('mount_point')) { |
|
|
|
$mountPoint = $sourceStorage->getMountOption('mount_point'); |
|
|
|
$source = $mountPoint . '/' . $sourceInternalPath; |
|
|
|
$target = $this->getFullPath($targetInternalPath); |
|
|
|
$this->copyKeys($source, $target); |
|
|
|
|