Add occ preview:migrate to migrate previews from the old flat structure to a subfolder structure
* `php occ preview:repair` - a preview migration tool that moves existing previews into the new location introduced with #19214
* moves `appdata_INSTANCEID/previews/FILEID` to `appdata_INSTANCEID/previews/0/5/8/4/c/e/5/FILEID`
* migration tool can be stopped during migration via `CTRL+C` - it then finishes the current folder (with the previews of one file) and stops gracefully
* if a PHP memory limit is set in the `php.ini` then it will stop automatically once it has less than 25 MiB memory left (this is to avoid hard crashes in the middle of a migration)
* the tool can be used during operation - possible drawbacks:
* there is the chance of a race condition that a new preview is generated in the moment the folder is already migrated away - so the old folder with the newly cached preview is deleted and one cached preview needs to be re-generated
* there is the chance of a race condition during access of a preview while it is migrated to the other folder - then no preview can be shown and results in a 404 (as of now this is an accepted risk)
Signed-off-by:
Morris Jobke <hey@morrisjobke.de>
Showing
- core/Command/Preview/Repair.php 280 additions, 0 deletionscore/Command/Preview/Repair.php
- core/register_command.php 2 additions, 0 deletionscore/register_command.php
- lib/composer/composer/autoload_classmap.php 1 addition, 0 deletionslib/composer/composer/autoload_classmap.php
- lib/composer/composer/autoload_static.php 1 addition, 0 deletionslib/composer/composer/autoload_static.php
- lib/private/Preview/Storage/Root.php 3 additions, 3 deletionslib/private/Preview/Storage/Root.php
Loading
Please register or sign in to comment