Make sure that when fetching the image from the cache we don't
accidentally fetch the cropped image just because it also start with
256-256
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
The $crop parameter was not propagated to the imaginary pipeline and
instead it used the smartcrop algorithm always
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
Now do the operation in two steps:
1. Rotate the image according the exif data
2. Do the actual operation
This should only have a performance impact on image with exif rotation
data to do the rotation. For all the other images the autorotate steps
should be almost instant.
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
When an odt file is xml and not zip, it would throw a ValueError.
It will now just ignore this file and return null for the preview.
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
for movies under 5 seconds
Signed-off-by: UmbrellaCodr <umbrella@biohazard.cc>
Update lib/private/Preview/Movie.php
Co-authored-by: Simon L. <szaimen@e.mail.de>
If the first 5 MB are not enough to grab a useful frame for the
thumbnail preview, fall back to reading the full file.
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
Including handling in OC_Image
But also a preview provider
Of course only works if your php actually supports webp
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
Currently if the following situation happens
Server generates preview
Server has command removed which allows a preview to be shown
Client asks for preview, gets a 404 error when preview exists
(Mime checked before preview)
This happens more often with documents, or video as the commands are not
native PHP, they require a binary on the server.
After the fix the following would happen
Server generates preview
Server has command removed which allows a preview to be shown
Client asks for preview, gets preview which has been generated
(Mime checked after preview)
This would also allow offline generation (for example a docker image
containing the extra binaries), allowing a reduction in attack surface
of the instance serving the preview data.
Signed-off-by: Scott Dutton <scott@exussum.co.uk>
* introduces a new IRootMountProvider to register mount points inside the root storage
* adds a AppdataPreviewObjectStoreStorage to handle the split between preview folders and bucket number
Ref #22033
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
* `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>