Git'Fellow
304c9fbc3b
fix(preview): Validate preview MIME type
...
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2026-03-08 18:57:18 +01:00
Carl Schwan
4722f56778
fix(preview): Handle unique constraints
...
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-02-11 19:56:11 +01:00
Carl Schwan
7b6078875b
refactor: Run rector on lib/private
...
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2026-02-06 13:50:18 +01:00
Carl Schwan
7a025ffb0b
feat(preview): Make it possible to disable on preview migration
...
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-14 14:09:07 +01:00
Carl Schwan
6149168129
feat(preview): On demand preview migration
...
When requesting previews, which we don't find in oc_previews, search in
IAppData first before creating them.
Move the logic from MovepreviewJob to PreviewMigrationService and reuse
that in the Preview Generator.
At the same time rename MovePreviewJob to PreviewMigrationJob as it is a
better name.
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2026-01-12 14:20:09 +01:00
Carl Schwan
7c1a8a4060
feat: Adapt a bit the snowflake ids API
...
- Rename setId() -> generateId() in SnowflakeAwareEntity
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-06 12:57:17 +01:00
Anna Larch
5f797ebc32
refactor: move existing usages of snoflake IDs SnowflakeAwareEntity
...
Signed-off-by: Anna Larch <anna@nextcloud.com>
2026-01-06 12:57:17 +01:00
Anna Larch
f546daada7
refactor: Rename Snowflake Generator and Decoder
...
And introduce the Snowflake DTO
Signed-off-by: Anna Larch <anna@nextcloud.com>
2026-01-06 12:57:04 +01:00
Carl Schwan
336cc3fa35
feat(Db): Use SnowflakeId for previews
...
Allow to get an id for the storing the preview on disk before inserting
the preview on the DB.
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-10-28 17:50:03 +01:00
Carl Schwan
cb82a9ef04
refactor(preview): Cleanup a bit the public interface
...
* Remove old IProvider interface, it's been deprecated since 17.0.0 (8
years)
* Add type hinting to the IPreview interface and mark it as consumeable
only
* Remove unused arguments from GeneratorHelper
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-10-09 17:41:13 +02:00
Carl Schwan
bef3996c3e
fix(preview): Make version column a string
...
And move it to a different table so that we don't have to pay the
storage cost when not using it (most of the times).
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-10-08 14:07:06 +02:00
Carl Schwan
66f50bd585
refactor(preview): Use same mimetype ids as filecache
...
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-10-06 13:37:15 +02:00
Carl Schwan
58023782b6
feat(preview): Store original file mimetype in preview table
...
Allow to quickly query all the files from a specific mimetype like in
the ResetRenderedTexts command.
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-10-06 13:37:15 +02:00
Carl Schwan
324b54b863
refactor(preview): Cleanup the implementation of the new preview backend
...
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-10-06 13:37:15 +02:00
Carl Schwan
6f56dcf73e
fix(preview): Fix some tests
...
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-10-06 13:37:15 +02:00
Carl Schwan
b0357663b9
perf(preview): Optimize migration and simplify DB layout
...
* Simplify migration by not moving the actual files and just updating
the DB
* Don't store the storageid in the preview table as it is not needed
* Start adding tests
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-10-06 13:37:15 +02:00
Carl Schwan
bba9667882
perf(preview): Adapt BackgroundCleanupJob to new previews table
...
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-10-06 13:37:15 +02:00
Carl Schwan
6008852232
feat(preview): Support multibucket storage
...
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-10-06 13:37:15 +02:00
Carl Schwan
13c35c0f17
perf(preview): Migrate previews to the new optimized table
...
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-10-06 13:37:15 +02:00
Carl Schwan
656e33e8da
perf(preview): Add support for multibucket storage
...
Signed-off-by: Carl Schwan <carl.schwan@nextclound.com>
2025-10-06 13:37:15 +02:00
Carl Schwan
18fbacdd8d
perf(preview): Split preview data to new table
...
The new oc_previews table is optimized for storing previews and should
decrease significantly the space taken by previews in the filecache
table.
This attend to reuse the IObjectStore abstraction over S3/Swift/Azure
but currently only support one single bucket configuration.
Signed-off-by: Carl Schwan <carl.schwan@nextclound.com>
2025-10-06 13:37:15 +02:00
AndyXheli
ecd1d5dde2
fix(previews): lower log level when cached preview isn't found
...
Since this PR #52221 was implemented, the log file has been flooded with warnings stating, "Cached preview not found for file; generating a new preview." This appears to be more of an informational message rather than a warning. This PR will change it from warning to debug
Original PR
#52221
Signed-off-by: AndyXheli <andyxheli@gmail.com>
2025-05-15 07:34:40 -05:00
Louis Chemineau
867be352f3
fix(blurhash): Use preview API to generate the previews
...
This allows to benefit from all the checks done by the preview API.
This also use the newly introduced `cacheResult` argument to limit disk usage.
Signed-off-by: Louis Chemineau <louis@chmn.me>
2025-05-05 11:13:31 +02:00
Louis Chemineau
2238548278
feat(previews): Support in memory preview request
...
This allows callers to use the API without increasing the disk usage.
Example: blurhash generation, where we request a preview for all uploaded pictures, but don't want to necessarily store that preview.
Signed-off-by: Louis Chemineau <louis@chmn.me>
2025-05-05 10:38:51 +02:00
nfebe
d980e69f74
refactor: Thumbnail Generator logging and tests
...
Signed-off-by: nfebe <fenn25.fn@gmail.com>
2025-04-23 23:06:28 +01:00
nfebe
6b89838cc2
feat: add logging to preview generation
...
Signed-off-by: nfebe <fenn25.fn@gmail.com>
2025-04-17 14:24:18 +01:00
provokateurin
9836e9b164
chore(deps): Update nextcloud/coding-standard to v1.3.1
...
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-09-19 14:21:20 +02:00
Thomas Citharel
c2150bd079
feat: Add mimetype into BeforePreviewFetchedEvent event
...
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2024-09-10 14:05:06 +02:00
Daniel Kesselberg
af6de04e9e
style: update codestyle for coding-standard 1.2.3
...
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2024-08-25 19:34:58 +02:00
Andy Scherzinger
dae7c159f7
chore: Add SPDX header
...
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2024-05-24 13:11:22 +02:00
Côme Chilliet
ec5133b739
fix: Apply new coding standard to all files
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-04-02 14:16:21 +02:00
Git'Fellow
ef5f7d0a90
Us strpos() only
...
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2023-11-15 00:04:25 +01:00
Git'Fellow
53b84732a3
Check for open_basedir before reading /proc
...
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2023-11-15 00:04:25 +01:00
Simon L
b681cf735a
address review
...
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-03 15:27:17 +01:00
Simon L
531f5d1e4f
fix semaphore guarding
...
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-03 11:47:12 +01:00
Daniel Hansson
da2aad598e
also remove function
...
Signed-off-by: Daniel Hansson <mailto@danielhansson.nu>
2023-10-02 10:54:36 +02:00
Daniel Hansson
b2d105e7ec
Generate all preview sizes for Imaginary
...
A follow up on https://github.com/nextcloud/server/pull/40670
Based on discussions here: https://github.com/nextcloud/server/issues/38911#issuecomment-1741819188
This fixes the case were not all previews are generated, for example in the activity view: https://github.com/nextcloud/server/issues/38911#issuecomment-1738886106
Signed-off-by: Daniel Hansson <mailto@danielhansson.nu>
2023-09-30 20:08:35 +02:00
JanisPlayer
80abec668b
feat: Imaginary WebP support
...
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2023-09-02 09:30:37 +02:00
Joas Schilling
4f7de8ed60
fix!: Remove legacy event dispatching Symfony's GenericEvent
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-07-27 09:57:51 +02:00
Daniel Kesselberg
440f882322
feat: add width, height, crop and mode to BeforePreviewFetchedEvent
...
user_usage_report keeps a counter for files read.
The app uses
- OC_Filesystem::read hook
- Event listener (the legacy one) for IPreview::EVENT
Request for previews do not trigger the hook, hence the additional event listener.
The thumbnails for a list or grid view should not count, so we need the width and height.
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2023-06-23 16:27:35 +02:00
Robin Appelman
9f1d497a0b
Merge pull request #38261 from fsamapoor/replace_strpos_calls_in_lib_private
...
Refactors "strpos" calls in lib/private to improve code readability.
2023-06-01 23:10:00 +02:00
Simon L
6608f84a46
Merge pull request #36692 from nextcloud/throw-exception-to-avoid-division-by-zero
...
fix(preview-generator): Throw exception before dividing by zero when generating previews
2023-05-17 00:14:42 +02:00
Faraz Samapoor
e7cc7653b8
Refactors "strpos" calls in lib/private to improve code readability.
...
Signed-off-by: Faraz Samapoor <fsamapoor@gmail.com>
2023-05-15 15:17:19 +03:30
Simon L
d55a7c619d
Fix typos in lib/public subdirectory
...
Found via `codespell -q 3 -S l10n -L jus ./lib/public`
Signed-off-by: luz paz <luzpaz@github.com>
Update lib/public/Accounts/IAccount.php
Signed-off-by: luz paz <luzpaz@github.com>
Signed-off-by: Simon L <szaimen@e.mail.de>
Co-Authored-By: Côme Chilliet <91878298+come-nc@users.noreply.github.com>
2023-05-10 11:56:34 +02:00
Glandos
e542e60dbc
try to make linters happy
...
Signed-off-by: Glandos <bugs-github@antipoul.fr>
2023-04-17 16:29:14 +02:00
Glandos
3440387f0f
gather code from small and max preview
...
use directory listing in both functions to gain 25% speed on run where
every preview already exist.
Signed-off-by: Glandos <bugs-github@antipoul.fr>
2023-04-17 16:29:13 +02:00
Glandos
24c121347a
Revert 0e49b40
...
Signed-off-by: Glandos <bugs-github@antipoul.fr>
2023-04-17 16:29:13 +02:00
Glandos
06a7e90383
improve parameter doc
...
Signed-off-by: Glandos <bugs-github@antipoul.fr>
2023-04-17 16:29:13 +02:00
Glandos
4954bead1d
Ensure max preview image is not null
...
Signed-off-by: Glandos <bugs-github@antipoul.fr>
2023-04-17 16:29:13 +02:00
Glandos
b6c65fee2a
php-cs-fix
...
Signed-off-by: Glandos <bugs-github@antipoul.fr>
2023-04-17 16:29:13 +02:00