Merge pull request #24628 from owncloud/decryptall-checkifneedsprocessing
[decrypt_all] Check if file needs to decrypted or not for speed up large oc setups.
This commit is contained in:
commit
a441220f24
|
@ -133,6 +133,7 @@ class DecryptAll {
|
|||
|
||||
/**
|
||||
* iterate over all user and encrypt their files
|
||||
*
|
||||
* @param string $user which users files should be decrypted, default = all users
|
||||
*/
|
||||
protected function decryptAllUsersFiles($user = '') {
|
||||
|
@ -200,9 +201,9 @@ class DecryptAll {
|
|||
|
||||
$this->setupUserFS($uid);
|
||||
$directories = array();
|
||||
$directories[] = '/' . $uid . '/files';
|
||||
$directories[] = '/' . $uid . '/files';
|
||||
|
||||
while($root = array_pop($directories)) {
|
||||
while ($root = array_pop($directories)) {
|
||||
$content = $this->rootView->getDirectoryContent($root);
|
||||
foreach ($content as $file) {
|
||||
$path = $root . '/' . $file['name'];
|
||||
|
@ -213,9 +214,14 @@ class DecryptAll {
|
|||
try {
|
||||
$progress->setMessage("decrypt files for user $userCount: $path");
|
||||
$progress->advance();
|
||||
if ($this->decryptFile($path) === false) {
|
||||
if ($file->isEncrypted() === false) {
|
||||
$progress->setMessage("decrypt files for user $userCount: $path (already decrypted)");
|
||||
$progress->advance();
|
||||
} else {
|
||||
if ($this->decryptFile($path) === false) {
|
||||
$progress->setMessage("decrypt files for user $userCount: $path (already decrypted)");
|
||||
$progress->advance();
|
||||
}
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
if (isset($this->failed[$uid])) {
|
||||
|
|
|
@ -26,6 +26,7 @@ namespace Test\Encryption;
|
|||
use OC\Encryption\DecryptAll;
|
||||
use OC\Encryption\Exceptions\DecryptionFailedException;
|
||||
use OC\Encryption\Manager;
|
||||
use OC\Files\FileInfo;
|
||||
use OC\Files\View;
|
||||
use OCP\IUserManager;
|
||||
use Test\TestCase;
|
||||
|
@ -242,15 +243,15 @@ class DecryptAllTest extends TestCase {
|
|||
$this->view->expects($this->at(0))->method('getDirectoryContent')
|
||||
->with('/user1/files')->willReturn(
|
||||
[
|
||||
['name' => 'foo', 'type'=>'dir'],
|
||||
['name' => 'bar', 'type'=>'file'],
|
||||
new FileInfo('path', null, 'intPath', ['name' => 'foo', 'type'=>'dir'], null),
|
||||
new FileInfo('path', null, 'intPath', ['name' => 'bar', 'type'=>'file', 'encrypted'=>true], null)
|
||||
]
|
||||
);
|
||||
|
||||
$this->view->expects($this->at(3))->method('getDirectoryContent')
|
||||
->with('/user1/files/foo')->willReturn(
|
||||
[
|
||||
['name' => 'subfile', 'type'=>'file']
|
||||
new FileInfo('path', null, 'intPath', ['name' => 'subfile', 'type'=>'file', 'encrypted'=>true], null)
|
||||
]
|
||||
);
|
||||
|
||||
|
|
Loading…
Reference in New Issue