@@ -84,17 +84,17 @@ discard block |
||
| 84 | 84 | |
| 85 | 85 | private static $max_versions_per_interval = [ |
| 86 | 86 | //first 10sec, one version every 2sec |
| 87 | - 1 => ['intervalEndsAfter' => 10, 'step' => 2], |
|
| 87 | + 1 => ['intervalEndsAfter' => 10, 'step' => 2], |
|
| 88 | 88 | //next minute, one version every 10sec |
| 89 | - 2 => ['intervalEndsAfter' => 60, 'step' => 10], |
|
| 89 | + 2 => ['intervalEndsAfter' => 60, 'step' => 10], |
|
| 90 | 90 | //next hour, one version every minute |
| 91 | - 3 => ['intervalEndsAfter' => 3600, 'step' => 60], |
|
| 91 | + 3 => ['intervalEndsAfter' => 3600, 'step' => 60], |
|
| 92 | 92 | //next 24h, one version every hour |
| 93 | - 4 => ['intervalEndsAfter' => 86400, 'step' => 3600], |
|
| 93 | + 4 => ['intervalEndsAfter' => 86400, 'step' => 3600], |
|
| 94 | 94 | //next 30days, one version per day |
| 95 | 95 | 5 => ['intervalEndsAfter' => 2592000, 'step' => 86400], |
| 96 | 96 | //until the end one version per week |
| 97 | - 6 => ['intervalEndsAfter' => -1, 'step' => 604800], |
|
| 97 | + 6 => ['intervalEndsAfter' => -1, 'step' => 604800], |
|
| 98 | 98 | ]; |
| 99 | 99 | |
| 100 | 100 | /** @var \OCA\Files_Versions\AppInfo\Application */ |
@@ -167,7 +167,7 @@ discard block |
||
| 167 | 167 | * @return int versions size |
| 168 | 168 | */ |
| 169 | 169 | private static function getVersionsSize($user) { |
| 170 | - $view = new View('/' . $user); |
|
| 170 | + $view = new View('/'.$user); |
|
| 171 | 171 | $fileInfo = $view->getFileInfo('/files_versions'); |
| 172 | 172 | return isset($fileInfo['size']) ? $fileInfo['size'] : 0; |
| 173 | 173 | } |
@@ -185,7 +185,7 @@ discard block |
||
| 185 | 185 | } |
| 186 | 186 | |
| 187 | 187 | // we only handle existing files |
| 188 | - if (! Filesystem::file_exists($filename) || Filesystem::is_dir($filename)) { |
|
| 188 | + if (!Filesystem::file_exists($filename) || Filesystem::is_dir($filename)) { |
|
| 189 | 189 | return false; |
| 190 | 190 | } |
| 191 | 191 | |
@@ -268,14 +268,14 @@ discard block |
||
| 268 | 268 | $filename = $deletedFile['filename']; |
| 269 | 269 | |
| 270 | 270 | if (!Filesystem::file_exists($path)) { |
| 271 | - $view = new View('/' . $uid . '/files_versions'); |
|
| 271 | + $view = new View('/'.$uid.'/files_versions'); |
|
| 272 | 272 | |
| 273 | 273 | $versions = self::getVersions($uid, $filename); |
| 274 | 274 | if (!empty($versions)) { |
| 275 | 275 | foreach ($versions as $v) { |
| 276 | - \OC_Hook::emit('\OCP\Versions', 'preDelete', ['path' => $path . $v['version'], 'trigger' => self::DELETE_TRIGGER_MASTER_REMOVED]); |
|
| 277 | - self::deleteVersion($view, $filename . '.v' . $v['version']); |
|
| 278 | - \OC_Hook::emit('\OCP\Versions', 'delete', ['path' => $path . $v['version'], 'trigger' => self::DELETE_TRIGGER_MASTER_REMOVED]); |
|
| 276 | + \OC_Hook::emit('\OCP\Versions', 'preDelete', ['path' => $path.$v['version'], 'trigger' => self::DELETE_TRIGGER_MASTER_REMOVED]); |
|
| 277 | + self::deleteVersion($view, $filename.'.v'.$v['version']); |
|
| 278 | + \OC_Hook::emit('\OCP\Versions', 'delete', ['path' => $path.$v['version'], 'trigger' => self::DELETE_TRIGGER_MASTER_REMOVED]); |
|
| 279 | 279 | } |
| 280 | 280 | } |
| 281 | 281 | } |
@@ -309,33 +309,33 @@ discard block |
||
| 309 | 309 | $rootView = new View(''); |
| 310 | 310 | |
| 311 | 311 | // did we move a directory ? |
| 312 | - if ($rootView->is_dir('/' . $targetOwner . '/files/' . $targetPath)) { |
|
| 312 | + if ($rootView->is_dir('/'.$targetOwner.'/files/'.$targetPath)) { |
|
| 313 | 313 | // does the directory exists for versions too ? |
| 314 | - if ($rootView->is_dir('/' . $sourceOwner . '/files_versions/' . $sourcePath)) { |
|
| 314 | + if ($rootView->is_dir('/'.$sourceOwner.'/files_versions/'.$sourcePath)) { |
|
| 315 | 315 | // create missing dirs if necessary |
| 316 | - self::createMissingDirectories($targetPath, new View('/'. $targetOwner)); |
|
| 316 | + self::createMissingDirectories($targetPath, new View('/'.$targetOwner)); |
|
| 317 | 317 | |
| 318 | 318 | // move the directory containing the versions |
| 319 | 319 | $rootView->$operation( |
| 320 | - '/' . $sourceOwner . '/files_versions/' . $sourcePath, |
|
| 321 | - '/' . $targetOwner . '/files_versions/' . $targetPath |
|
| 320 | + '/'.$sourceOwner.'/files_versions/'.$sourcePath, |
|
| 321 | + '/'.$targetOwner.'/files_versions/'.$targetPath |
|
| 322 | 322 | ); |
| 323 | 323 | } |
| 324 | - } elseif ($versions = Storage::getVersions($sourceOwner, '/' . $sourcePath)) { |
|
| 324 | + } elseif ($versions = Storage::getVersions($sourceOwner, '/'.$sourcePath)) { |
|
| 325 | 325 | // create missing dirs if necessary |
| 326 | - self::createMissingDirectories($targetPath, new View('/'. $targetOwner)); |
|
| 326 | + self::createMissingDirectories($targetPath, new View('/'.$targetOwner)); |
|
| 327 | 327 | |
| 328 | 328 | foreach ($versions as $v) { |
| 329 | 329 | // move each version one by one to the target directory |
| 330 | 330 | $rootView->$operation( |
| 331 | - '/' . $sourceOwner . '/files_versions/' . $sourcePath.'.v' . $v['version'], |
|
| 332 | - '/' . $targetOwner . '/files_versions/' . $targetPath.'.v'.$v['version'] |
|
| 331 | + '/'.$sourceOwner.'/files_versions/'.$sourcePath.'.v'.$v['version'], |
|
| 332 | + '/'.$targetOwner.'/files_versions/'.$targetPath.'.v'.$v['version'] |
|
| 333 | 333 | ); |
| 334 | 334 | } |
| 335 | 335 | } |
| 336 | 336 | |
| 337 | 337 | // if we moved versions directly for a file, schedule expiration check for that file |
| 338 | - if (!$rootView->is_dir('/' . $targetOwner . '/files/' . $targetPath)) { |
|
| 338 | + if (!$rootView->is_dir('/'.$targetOwner.'/files/'.$targetPath)) { |
|
| 339 | 339 | self::scheduleExpire($targetOwner, $targetPath); |
| 340 | 340 | } |
| 341 | 341 | } |
@@ -350,14 +350,14 @@ discard block |
||
| 350 | 350 | public static function rollback(string $file, int $revision, IUser $user) { |
| 351 | 351 | |
| 352 | 352 | // add expected leading slash |
| 353 | - $filename = '/' . ltrim($file, '/'); |
|
| 353 | + $filename = '/'.ltrim($file, '/'); |
|
| 354 | 354 | |
| 355 | 355 | // Fetch the userfolder to trigger view hooks |
| 356 | 356 | $root = \OC::$server->get(IRootFolder::class); |
| 357 | 357 | $userFolder = $root->getUserFolder($user->getUID()); |
| 358 | 358 | |
| 359 | 359 | $users_view = new View('/'.$user->getUID()); |
| 360 | - $files_view = new View('/'. $user->getUID().'/files'); |
|
| 360 | + $files_view = new View('/'.$user->getUID().'/files'); |
|
| 361 | 361 | |
| 362 | 362 | $versionCreated = false; |
| 363 | 363 | |
@@ -375,7 +375,7 @@ discard block |
||
| 375 | 375 | $versionCreated = true; |
| 376 | 376 | } |
| 377 | 377 | |
| 378 | - $fileToRestore = 'files_versions' . $filename . '.v' . $revision; |
|
| 378 | + $fileToRestore = 'files_versions'.$filename.'.v'.$revision; |
|
| 379 | 379 | |
| 380 | 380 | // Restore encrypted version of the old file for the newly restored file |
| 381 | 381 | // This has to happen manually here since the file is manually copied below |
@@ -391,7 +391,7 @@ discard block |
||
| 391 | 391 | ); |
| 392 | 392 | |
| 393 | 393 | // rollback |
| 394 | - if (self::copyFileContents($users_view, $fileToRestore, 'files' . $filename)) { |
|
| 394 | + if (self::copyFileContents($users_view, $fileToRestore, 'files'.$filename)) { |
|
| 395 | 395 | $files_view->touch($file, $revision); |
| 396 | 396 | Storage::scheduleExpire($user->getUID(), $file); |
| 397 | 397 | |
@@ -463,12 +463,12 @@ discard block |
||
| 463 | 463 | return $versions; |
| 464 | 464 | } |
| 465 | 465 | // fetch for old versions |
| 466 | - $view = new View('/' . $uid . '/'); |
|
| 466 | + $view = new View('/'.$uid.'/'); |
|
| 467 | 467 | |
| 468 | 468 | $pathinfo = pathinfo($filename); |
| 469 | 469 | $versionedFile = $pathinfo['basename']; |
| 470 | 470 | |
| 471 | - $dir = Filesystem::normalizePath(self::VERSIONS_ROOT . '/' . $pathinfo['dirname']); |
|
| 471 | + $dir = Filesystem::normalizePath(self::VERSIONS_ROOT.'/'.$pathinfo['dirname']); |
|
| 472 | 472 | |
| 473 | 473 | $dirContent = false; |
| 474 | 474 | if ($view->is_dir($dir)) { |
@@ -488,7 +488,7 @@ discard block |
||
| 488 | 488 | $pathparts = pathinfo($entryName); |
| 489 | 489 | $timestamp = substr($pathparts['extension'], 1); |
| 490 | 490 | $filename = $pathparts['filename']; |
| 491 | - $key = $timestamp . '#' . $filename; |
|
| 491 | + $key = $timestamp.'#'.$filename; |
|
| 492 | 492 | $versions[$key]['version'] = $timestamp; |
| 493 | 493 | $versions[$key]['humanReadableTimestamp'] = self::getHumanReadableTimestamp($timestamp); |
| 494 | 494 | if (empty($userFullPath)) { |
@@ -499,9 +499,9 @@ discard block |
||
| 499 | 499 | $versions[$key]['preview'] = $urlGenerator->linkToRoute('files_version.Preview.getPreview', |
| 500 | 500 | ['file' => $userFullPath, 'version' => $timestamp]); |
| 501 | 501 | } |
| 502 | - $versions[$key]['path'] = Filesystem::normalizePath($pathinfo['dirname'] . '/' . $filename); |
|
| 502 | + $versions[$key]['path'] = Filesystem::normalizePath($pathinfo['dirname'].'/'.$filename); |
|
| 503 | 503 | $versions[$key]['name'] = $versionedFile; |
| 504 | - $versions[$key]['size'] = $view->filesize($dir . '/' . $entryName); |
|
| 504 | + $versions[$key]['size'] = $view->filesize($dir.'/'.$entryName); |
|
| 505 | 505 | $versions[$key]['mimetype'] = \OC::$server->get(IMimeTypeDetector::class)->detectPath($versionedFile); |
| 506 | 506 | } |
| 507 | 507 | } |
@@ -525,7 +525,7 @@ discard block |
||
| 525 | 525 | $root = \OC::$server->get(IRootFolder::class); |
| 526 | 526 | try { |
| 527 | 527 | /** @var Folder $versionsRoot */ |
| 528 | - $versionsRoot = $root->get('/' . $uid . '/files_versions'); |
|
| 528 | + $versionsRoot = $root->get('/'.$uid.'/files_versions'); |
|
| 529 | 529 | } catch (NotFoundException $e) { |
| 530 | 530 | return; |
| 531 | 531 | } |
@@ -546,12 +546,12 @@ discard block |
||
| 546 | 546 | )); |
| 547 | 547 | |
| 548 | 548 | /** @var Node[] $versions */ |
| 549 | - $versions = array_filter($allVersions, function (Node $info) use ($threshold) { |
|
| 549 | + $versions = array_filter($allVersions, function(Node $info) use ($threshold) { |
|
| 550 | 550 | $versionsBegin = strrpos($info->getName(), '.v'); |
| 551 | 551 | if ($versionsBegin === false) { |
| 552 | 552 | return false; |
| 553 | 553 | } |
| 554 | - $version = (int)substr($info->getName(), $versionsBegin + 2); |
|
| 554 | + $version = (int) substr($info->getName(), $versionsBegin + 2); |
|
| 555 | 555 | return $version < $threshold; |
| 556 | 556 | }); |
| 557 | 557 | |
@@ -573,19 +573,19 @@ discard block |
||
| 573 | 573 | $diff = time() - $timestamp; |
| 574 | 574 | |
| 575 | 575 | if ($diff < 60) { // first minute |
| 576 | - return $diff . " seconds ago"; |
|
| 576 | + return $diff." seconds ago"; |
|
| 577 | 577 | } elseif ($diff < 3600) { //first hour |
| 578 | - return round($diff / 60) . " minutes ago"; |
|
| 578 | + return round($diff / 60)." minutes ago"; |
|
| 579 | 579 | } elseif ($diff < 86400) { // first day |
| 580 | - return round($diff / 3600) . " hours ago"; |
|
| 580 | + return round($diff / 3600)." hours ago"; |
|
| 581 | 581 | } elseif ($diff < 604800) { //first week |
| 582 | - return round($diff / 86400) . " days ago"; |
|
| 582 | + return round($diff / 86400)." days ago"; |
|
| 583 | 583 | } elseif ($diff < 2419200) { //first month |
| 584 | - return round($diff / 604800) . " weeks ago"; |
|
| 584 | + return round($diff / 604800)." weeks ago"; |
|
| 585 | 585 | } elseif ($diff < 29030400) { // first year |
| 586 | - return round($diff / 2419200) . " months ago"; |
|
| 586 | + return round($diff / 2419200)." months ago"; |
|
| 587 | 587 | } else { |
| 588 | - return round($diff / 29030400) . " years ago"; |
|
| 588 | + return round($diff / 29030400)." years ago"; |
|
| 589 | 589 | } |
| 590 | 590 | } |
| 591 | 591 | |
@@ -595,7 +595,7 @@ discard block |
||
| 595 | 595 | * @return array with contains two arrays 'all' which contains all versions sorted by age and 'by_file' which contains all versions sorted by filename |
| 596 | 596 | */ |
| 597 | 597 | private static function getAllVersions($uid) { |
| 598 | - $view = new View('/' . $uid . '/'); |
|
| 598 | + $view = new View('/'.$uid.'/'); |
|
| 599 | 599 | $dirs = [self::VERSIONS_ROOT]; |
| 600 | 600 | $versions = []; |
| 601 | 601 | |
@@ -605,7 +605,7 @@ discard block |
||
| 605 | 605 | |
| 606 | 606 | foreach ($files as $file) { |
| 607 | 607 | $fileData = $file->getData(); |
| 608 | - $filePath = $dir . '/' . $fileData['name']; |
|
| 608 | + $filePath = $dir.'/'.$fileData['name']; |
|
| 609 | 609 | if ($file['type'] === 'dir') { |
| 610 | 610 | $dirs[] = $filePath; |
| 611 | 611 | } else { |
@@ -613,7 +613,7 @@ discard block |
||
| 613 | 613 | $relPathStart = strlen(self::VERSIONS_ROOT); |
| 614 | 614 | $version = substr($filePath, $versionsBegin + 2); |
| 615 | 615 | $relpath = substr($filePath, $relPathStart, $versionsBegin - $relPathStart); |
| 616 | - $key = $version . '#' . $relpath; |
|
| 616 | + $key = $version.'#'.$relpath; |
|
| 617 | 617 | $versions[$key] = ['path' => $relpath, 'timestamp' => $version]; |
| 618 | 618 | } |
| 619 | 619 | } |
@@ -657,13 +657,13 @@ discard block |
||
| 657 | 657 | [$toDelete, $size] = self::getAutoExpireList($time, $versions); |
| 658 | 658 | } else { |
| 659 | 659 | $size = 0; |
| 660 | - $toDelete = []; // versions we want to delete |
|
| 660 | + $toDelete = []; // versions we want to delete |
|
| 661 | 661 | } |
| 662 | 662 | |
| 663 | 663 | foreach ($versions as $key => $version) { |
| 664 | 664 | if ($expiration->isExpired($version['version'], $quotaExceeded) && !isset($toDelete[$key])) { |
| 665 | 665 | $size += $version['size']; |
| 666 | - $toDelete[$key] = $version['path'] . '.v' . $version['version']; |
|
| 666 | + $toDelete[$key] = $version['path'].'.v'.$version['version']; |
|
| 667 | 667 | } |
| 668 | 668 | } |
| 669 | 669 | |
@@ -678,7 +678,7 @@ discard block |
||
| 678 | 678 | */ |
| 679 | 679 | protected static function getAutoExpireList($time, $versions) { |
| 680 | 680 | $size = 0; |
| 681 | - $toDelete = []; // versions we want to delete |
|
| 681 | + $toDelete = []; // versions we want to delete |
|
| 682 | 682 | |
| 683 | 683 | $interval = 1; |
| 684 | 684 | $step = Storage::$max_versions_per_interval[$interval]['step']; |
@@ -705,9 +705,9 @@ discard block |
||
| 705 | 705 | if ($nextInterval === -1 || $prevTimestamp > $nextInterval) { |
| 706 | 706 | if ($version['version'] > $nextVersion) { |
| 707 | 707 | //distance between two version too small, mark to delete |
| 708 | - $toDelete[$key] = $version['path'] . '.v' . $version['version']; |
|
| 708 | + $toDelete[$key] = $version['path'].'.v'.$version['version']; |
|
| 709 | 709 | $size += $version['size']; |
| 710 | - \OC::$server->get(LoggerInterface::class)->info('Mark to expire '. $version['path'] .' next version should be ' . $nextVersion . " or smaller. (prevTimestamp: " . $prevTimestamp . "; step: " . $step, ['app' => 'files_versions']); |
|
| 710 | + \OC::$server->get(LoggerInterface::class)->info('Mark to expire '.$version['path'].' next version should be '.$nextVersion." or smaller. (prevTimestamp: ".$prevTimestamp."; step: ".$step, ['app' => 'files_versions']); |
|
| 711 | 711 | } else { |
| 712 | 712 | $nextVersion = $version['version'] - $step; |
| 713 | 713 | $prevTimestamp = $version['version']; |
@@ -767,8 +767,8 @@ discard block |
||
| 767 | 767 | // get available disk space for user |
| 768 | 768 | $user = \OC::$server->get(IUserManager::class)->get($uid); |
| 769 | 769 | if (is_null($user)) { |
| 770 | - $logger->error('Backends provided no user object for ' . $uid, ['app' => 'files_versions']); |
|
| 771 | - throw new \OC\User\NoUserException('Backends provided no user object for ' . $uid); |
|
| 770 | + $logger->error('Backends provided no user object for '.$uid, ['app' => 'files_versions']); |
|
| 771 | + throw new \OC\User\NoUserException('Backends provided no user object for '.$uid); |
|
| 772 | 772 | } |
| 773 | 773 | |
| 774 | 774 | \OC_Util::setupFS($uid); |
@@ -851,13 +851,13 @@ discard block |
||
| 851 | 851 | self::deleteVersion($versionsFileview, $path); |
| 852 | 852 | \OC_Hook::emit('\OCP\Versions', 'delete', ['path' => $path, 'trigger' => self::DELETE_TRIGGER_QUOTA_EXCEEDED]); |
| 853 | 853 | unset($allVersions[$key]); // update array with the versions we keep |
| 854 | - $logger->info('Expire: ' . $path, ['app' => 'files_versions']); |
|
| 854 | + $logger->info('Expire: '.$path, ['app' => 'files_versions']); |
|
| 855 | 855 | } |
| 856 | 856 | |
| 857 | 857 | // Check if enough space is available after versions are rearranged. |
| 858 | 858 | // If not we delete the oldest versions until we meet the size limit for versions, |
| 859 | 859 | // but always keep the two latest versions |
| 860 | - $numOfVersions = count($allVersions) - 2 ; |
|
| 860 | + $numOfVersions = count($allVersions) - 2; |
|
| 861 | 861 | $i = 0; |
| 862 | 862 | // sort oldest first and make sure that we start at the first element |
| 863 | 863 | ksort($allVersions); |
@@ -865,9 +865,9 @@ discard block |
||
| 865 | 865 | while ($availableSpace < 0 && $i < $numOfVersions) { |
| 866 | 866 | $version = current($allVersions); |
| 867 | 867 | \OC_Hook::emit('\OCP\Versions', 'preDelete', ['path' => $version['path'].'.v'.$version['version'], 'trigger' => self::DELETE_TRIGGER_QUOTA_EXCEEDED]); |
| 868 | - self::deleteVersion($versionsFileview, $version['path'] . '.v' . $version['version']); |
|
| 868 | + self::deleteVersion($versionsFileview, $version['path'].'.v'.$version['version']); |
|
| 869 | 869 | \OC_Hook::emit('\OCP\Versions', 'delete', ['path' => $version['path'].'.v'.$version['version'], 'trigger' => self::DELETE_TRIGGER_QUOTA_EXCEEDED]); |
| 870 | - $logger->info('running out of space! Delete oldest version: ' . $version['path'].'.v'.$version['version'], ['app' => 'files_versions']); |
|
| 870 | + $logger->info('running out of space! Delete oldest version: '.$version['path'].'.v'.$version['version'], ['app' => 'files_versions']); |
|
| 871 | 871 | $versionsSize -= $version['size']; |
| 872 | 872 | $availableSpace += $version['size']; |
| 873 | 873 | next($allVersions); |
@@ -893,7 +893,7 @@ discard block |
||
| 893 | 893 | $dirParts = explode('/', $dirname); |
| 894 | 894 | $dir = "/files_versions"; |
| 895 | 895 | foreach ($dirParts as $part) { |
| 896 | - $dir = $dir . '/' . $part; |
|
| 896 | + $dir = $dir.'/'.$part; |
|
| 897 | 897 | if (!$view->file_exists($dir)) { |
| 898 | 898 | $view->mkdir($dir); |
| 899 | 899 | } |