Recursively lock folder contents
This commit is contained in:
parent
3bf818450a
commit
57f841da2c
|
@ -40,6 +40,7 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
use OC\Files\View;
|
||||||
use OC\Streamer;
|
use OC\Streamer;
|
||||||
use OCP\Lock\ILockingProvider;
|
use OCP\Lock\ILockingProvider;
|
||||||
|
|
||||||
|
@ -123,14 +124,10 @@ class OC_Files {
|
||||||
$view->lockFile($filename, ILockingProvider::LOCK_SHARED);
|
$view->lockFile($filename, ILockingProvider::LOCK_SHARED);
|
||||||
}
|
}
|
||||||
if ($getType === self::ZIP_FILES) {
|
if ($getType === self::ZIP_FILES) {
|
||||||
foreach ($files as $file) {
|
self::lockFiles($view, $dir, $files);
|
||||||
$file = $dir . '/' . $file;
|
|
||||||
$view->lockFile($file, ILockingProvider::LOCK_SHARED);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if ($getType === self::ZIP_DIR) {
|
if ($getType === self::ZIP_DIR) {
|
||||||
$file = $dir . '/' . $files;
|
self::lockFiles($view, $dir, $files);
|
||||||
$view->lockFile($file, ILockingProvider::LOCK_SHARED);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($streamer) {
|
if ($streamer) {
|
||||||
|
@ -189,6 +186,30 @@ class OC_Files {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param View $view
|
||||||
|
* @param $dir
|
||||||
|
* @param string[]|string $files
|
||||||
|
*/
|
||||||
|
public static function lockFiles($view, $dir, $files) {
|
||||||
|
if (!is_array($files)) {
|
||||||
|
$file = $dir . '/' . $files;
|
||||||
|
$files = [$file];
|
||||||
|
}
|
||||||
|
foreach ($files as $file) {
|
||||||
|
$file = $dir . '/' . $file;
|
||||||
|
$view->lockFile($file, ILockingProvider::LOCK_SHARED);
|
||||||
|
if ($view->is_dir($file)) {
|
||||||
|
$contents = $view->getDirectoryContent($file);
|
||||||
|
$contents = array_map(function($fileInfo) use ($file) {
|
||||||
|
/** @var \OCP\Files\FileInfo $fileInfo */
|
||||||
|
return $file . '/' . $fileInfo->getName();
|
||||||
|
}, $contents);
|
||||||
|
self::lockFiles($view, $dir, $contents);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* set the maximum upload size limit for apache hosts using .htaccess
|
* set the maximum upload size limit for apache hosts using .htaccess
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue