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
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
Louis
f8bed8f186
Merge pull request #51145 from nextcloud/home-folder-readonly
2025-10-01 10:09:19 +02:00
Côme Chilliet
10e3192c2f
Merge pull request #55371 from nextcloud/carl/remove-oc-helper-streamCopy
...
refactor: Remove OC_Helper::streamCopy
2025-09-29 10:21:59 +02:00
Carl Schwan
8e5eef24d2
refactor: Remove OC_Helper::streamCopy
...
Replace by Files::streamCopy, also deprecated but since less long
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-09-28 12:52:14 +02:00
Ferdinand Thiessen
660f3f6fd1
refactor: use logical && || instead of weak and or operators
...
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-09-27 23:02:18 +02:00
Côme Chilliet
8107f614d8
fix(tests): Ignore expected warning for s3 tests
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-09-27 13:05:35 +02:00
Louis Chemineau
bd8a0ec3cf
feat(files): Add appconfig value to disable fixed userfolder permissions optimization
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
Signed-off-by: Louis Chemineau <louis@chmn.me>
2025-09-26 17:43:22 +02:00
Côme Chilliet
bc5e29f9f2
fix(tests): Fix type issues and other problems with encryption tests
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-09-09 11:46:18 +02:00
Robin Appelman
0c1d5e8c54
fix: ensure all object store configuration have distict bucket names
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-09-05 18:45:32 +02:00
Carl Schwan
d73537dd60
Merge pull request #54664 from nextcloud/carl/port-away-execute-lib
...
Port away from IQueryBuilder::execute in lib/ and tests/ and fix invalid usage of UniqueConstraintViolationException
2025-09-02 14:38:11 +02:00
Carl Schwan
9b2fff5931
refactor(querybuilder): Port away from qb::execute() in tests/
...
Replace by either executeStatement or executeQuery
Signed-off-by: Carl Schwan <carl.schwan@nextclound.com>
2025-09-02 11:55:58 +02:00
Robin Appelman
02f4a82088
fix: make bucket mapper work with new multi-object-store config
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-08-28 17:51:25 +02:00
Kate
45f5daa45a
Merge pull request #54666 from nextcloud/carl/apply-rector
2025-08-27 16:29:58 +02:00
Robin Appelman
ff65b61d9c
Merge pull request #54580 from nextcloud/sharded-cache-move-jail
...
fix moving cache items from cache jail with sharding
2025-08-26 20:20:35 +02:00
Carl Schwan
5835599fa1
chore(rector): Apply current rector config
...
Signed-off-by: Carl Schwan <carl.schwan@nextclound.com>
2025-08-26 16:27:26 +02:00
Côme Chilliet
07b046f762
fix(tests): Fix fopen in mock returning null which is not a valid return
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-08-25 13:18:50 +02:00
Robin Appelman
afe77e32f2
test: test moving cache items from cache jail with sharding
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-08-22 19:21:33 +02:00
Robin Appelman
e0a21e5927
Merge pull request #54384 from nextcloud/getpath-node
...
perf: use more optimized node-by-id logic in View::getPath
2025-08-14 18:21:23 +02:00
Robin Appelman
b3c53c7436
feat: allow object store configuration aliases for easier migrations
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-08-14 13:06:51 +02:00
Robin Appelman
385dd36ff8
feat: allow configuring multiple objectstore configurations
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-08-14 13:06:51 +02:00
Robin Appelman
34d5a103b4
test: adjust tests to getPath changes
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-08-13 19:42:42 +02:00
Marcel Klehr
43be97de08
fix(FileAccess): Use one param for rewriting home dirs and excluding non-user files mounts
...
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-07-15 09:15:16 +02:00
Julien Veyssier
3a96f8e533
fix(FileAccess*): fix tests
...
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2025-07-15 09:15:16 +02:00
Julien Veyssier
cb221c8211
fix(FileAccess*): Change the way home dir root is found, remove the excludeTrashbinMounts param of getDistinctMounts
...
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2025-07-15 09:15:16 +02:00
Julien Veyssier
7e986988fe
fix(FileAccess*): Adress review comments
...
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2025-07-15 09:15:16 +02:00
Marcel Klehr
131125bbb7
fix(FileAccessTest): Adress review comments
...
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-07-15 09:15:16 +02:00
Marcel Klehr
26f6013c1f
fix(FileAccessTest): Make it work on sharded instance
...
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-07-15 09:15:16 +02:00
Marcel Klehr
3941622059
fix(FileAccessTest): Make sure path_hash is not NULL
...
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-07-15 09:15:16 +02:00
Marcel Klehr
10cc43041b
fix(FileAccess#getByAncestorInStorage): Use a subquery to fix tests
...
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-07-15 09:15:16 +02:00
Marcel Klehr
d67c877ac5
fix(FileAccess): Add tests
...
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-07-15 09:15:16 +02:00
Robin Appelman
aa15f9d16d
chore: run rector
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-07-01 22:45:52 +02:00
Ferdinand Thiessen
5981b7eb51
chore: apply new CSFixer rules
...
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
# Conflicts:
# apps/settings/lib/SetupChecks/PhpOpcacheSetup.php
2025-07-01 16:26:50 +02:00
Ferdinand Thiessen
35a27b5fd5
fix(FilenameValidator): use _ as default replacement for invalid chars
...
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-06-18 09:44:57 +02:00
Robin Appelman
3561937816
chore: run rector on tests with new rule
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-06-12 18:38:29 +02:00
Robin Appelman
29e39c0a2e
chore: run rector on tests
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-06-12 18:31:58 +02:00
Joas Schilling
a425a1affc
test: Add a hint message on boolean comparison
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-06-06 14:36:33 +02:00
Louis
f4cb78b905
Merge pull request #52242 from nextcloud/artonge/fix/copy_subfolders_s3
2025-06-02 11:55:54 +02:00
Robin Appelman
be3cfefc75
Merge pull request #52816 from nextcloud/primary-object-store-settings
...
feat: move primary object store configuration to a single place
2025-05-28 17:40:53 +02:00
Robin Appelman
e21ce793a5
test: add test that object store folder copy preserves folder size
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-05-28 15:52:00 +02:00
Robin Appelman
7599162c7b
feat: move primary object store configuration to a single place
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-05-28 15:32:31 +02:00
Ferdinand Thiessen
9422b6d6d0
test: adjust library tests for PHPunit deprecations
...
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-28 11:20:15 +02:00
Côme Chilliet
9560e00cf3
chore: Remove useless legacy autoloader for tests
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-27 16:15:58 +02:00
provokateurin
6818aa9b12
feat(UserMountCache): Emit events for added, removed and updated mounts
...
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-05-19 13:54:51 +02:00
Kate
6b4f5c567c
Merge pull request #52848 from nextcloud/fix/cleanup-servercontainer
2025-05-19 07:02:11 +02:00
Ferdinand Thiessen
494a079321
test: replace OC_Helper:rmdirr with OCP\Files::rmdirr
...
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-16 23:09:37 +02:00
Côme Chilliet
70ef0a8db7
fix: Remove calls to legacy callers in tests
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-16 11:47:38 +02:00
Côme Chilliet
0243d23b8c
fix(tests): Remove calls to removed getMountProviderCollection from tests
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-16 10:49:03 +02:00
Joas Schilling
5f9117b939
test: Fix coding standards
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-15 08:48:13 +02:00
Joas Schilling
3e7db013c1
test: Fix non-static data providers
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-15 08:25:01 +02:00
Joas Schilling
9621e451ba
test: Fix tests/lib/Files
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-15 08:25:00 +02:00
Joas Schilling
5283e9a5e2
test: Cleanup tests/lib/Files/*
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-15 08:21:22 +02:00
Côme Chilliet
2cd491f491
Merge pull request #48560 from nextcloud/fix/migrate-encryption-away-from-hooks
...
feat(encryption): Migrate from hooks to events
2025-05-14 19:25:51 +02:00
Andy Scherzinger
14f79829f3
Merge pull request #52775 from nextcloud/nested-jail-root
...
fix unjailedroot of nested jails if there are other wrappers in between
2025-05-14 17:36:55 +02:00
Côme Chilliet
a79b5dea7c
fix(encryption): Improve Update class and event listenening
...
to avoid back&forth between path and Node object
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-13 23:37:52 +02:00
Côme Chilliet
e35a8ed063
fix(tests): Disable encryption wrapper when it makes sense
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-13 23:37:52 +02:00
Côme Chilliet
21233b7e17
fix(tests): Remove Encryption disabling in ViewTest to avoid side effects
...
Adapt tests a bit to make them pass with Encryption wrapper registered
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-13 23:37:52 +02:00
Côme Chilliet
38f341c179
fix(tests): Unregister encryption modules in ViewTest to avoid side effects
...
It was clearing the hooks with the same results before
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-13 23:37:52 +02:00
Robin Appelman
0001c22668
test: add test for nested cache jail unjailedroot
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-05-13 18:29:00 +02:00
Ferdinand Thiessen
6cf1870322
feat(FilenameValidator): allow to sanitize filenames
...
Share the filename sanitizing with the OCP filename validator.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-13 14:14:17 +02:00
Joas Schilling
c24f5fb256
test: Finish migrating tests/Core/ to PHPUnit 10 compatible code
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-02 16:47:42 +02:00
Louis
f8391e60ce
Merge pull request #51020 from nextcloud/artonge/fix/transfer_ownership
2025-04-14 16:14:45 +02:00
Côme Chilliet
0cf4f3cc71
fix: Replace all usages of OC_User backend method calls by IUserManager
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-04-10 11:29:21 +02:00
Louis Chemineau
8fdf2a7eae
fix: Transfer ownership with S3 as primary
...
When using S3 as primary storage, transferring ownership with the `--move` option fail with the following error:
`SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '8-45b963397aa40d4a0063e0d85e4fe7a1' for key 'fs_storage_path_hash'`
The `--move` option moves the entire home folder from one account to another.
The error means that the move failed because the destination folder already exist in `oc_filecache`.
- With S3 as primary storage, folders only exists as entries in `oc_filecache`.
- With S3 as primary storage, `moveFromStorage(...)` only moves the cache entry, as nothing needs to be moved on disk. This cache move does not delete potentially pre-existing destination folder.
- With Local storage, `moveFromStorage(...)` calls `rename(...)` which delete pre-existing folder.
- `transfer(...)`: 687a4d9ac7/apps/files/lib/Service/OwnershipTransferService.php (L112)
- `oneTimeUserSetup(...)`: 687a4d9ac7/lib/private/Files/SetupManager.php (L261-L262)
- `mkdir(...)`: 687a4d9ac7/lib/private/Files/ObjectStore/ObjectStoreStorage.php (L91-L135)
- `moveFromStorage(...)`: 687a4d9ac7/lib/private/Files/ObjectStore/ObjectStoreStorage.php (L635-L636)
Delete pre-existing folder in `moveFromStorage(...)`
Signed-off-by: Louis Chemineau <louis@chmn.me>
2025-04-01 13:53:56 +02:00
Ferdinand Thiessen
254dd85664
fix(IFilenameValidator): correctly handle case insensitivity
...
- forbidden names and forbidden base names are case **insensitive**
so we need to check all lowercase here.
- add test that config value is also read case insensitive.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-03-21 01:00:58 +01:00
skjnldsv
6baafd82b6
fix: make sure we process mime extensions as string
...
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-02-05 12:35:41 +01:00
Ferdinand Thiessen
b48ee2e924
fix: Harden files scanner for invalid null access
...
Co-authored-by: Ferdinand Thiessen <opensource@fthiessen.de>
Co-authored-by: Kate <26026535+provokateurin@users.noreply.github.com>
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-01-28 20:08:46 +01:00
Louis Chemineau
a635710117
fix: Metadata field search
...
Signed-off-by: Louis Chemineau <louis@chmn.me>
2025-01-20 14:41:55 +01:00
Robin Appelman
7b2cb2e3bc
test: update test for mountpoint numeric storage id
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-01-13 18:09:29 +01:00
Robin Appelman
16d0363937
fix: improve checks for moving shares/storages into other mounts
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-01-03 15:36:32 +01:00
Robin Appelman
37199779de
fix: fix mimetype not being updated when changing file extention on object store
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-12-05 18:05:13 +01:00
Louis Chemineau
425e0c3660
test(View): Copy preserves content
...
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-12-03 18:29:32 +01:00
Louis Chemineau
199b0bd4d9
fix(files): Correctly copy the cache information on copy operations
...
Needed to copy the `encrypted` flag of encrypted files when those files are two level down in a moved folder.
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-12-03 17:04:44 +01:00
Louis Chemineau
f9cda54cbf
fix: Wrap partial cache entry in CacheEntry
...
Because it is returned here: 7b7d07c575/lib/private/Files/Cache/Cache.php (L136-L137)
And some implementation got stricter: df95bf6ba8/lib/Mount/RootEntryCache.php (L23-L28)
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-11-21 17:13:24 +01:00
John Molakvoæ
e3e22e28c0
Merge pull request #47847 from nextcloud/fix-copying-or-moving-from-shared-groupfolders
2024-10-29 11:33:12 +01:00
provokateurin
0de4843b73
refactor(Storage): Align all Storage constructors
...
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-10-23 13:24:18 +02:00
Robin Appelman
7cb07bf306
test: add test for nested jail cross-storage move
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-10-10 15:16:12 +02:00
provokateurin
f28e74b7a8
refactor(Storage): Make all parameter types strong types
...
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-10-07 15:00:05 +02:00
provokateurin
4412b2b8a8
refactor(Wrapper\Encryption): Migrate to strong types
...
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-10-07 14:11:56 +02:00
provokateurin
d1977b8d25
refactor(Stream\Encryption): Migrate to strong types
...
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-10-07 14:02:27 +02:00
provokateurin
256a8d8903
test: Fix IStorage return types
...
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-09-26 17:29:48 +02:00
Côme Chilliet
4adf5fd5b0
fix(tests): Pause trashbin for lock tests in ViewTest using rmdir and unlink
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-09-24 10:37:38 +02:00
Côme Chilliet
40b404c566
Merge pull request #48111 from nextcloud/fix/move-storage-constructor-to-specific-interface
...
fix: Move storage constructor to specific interface
2024-09-23 15:57:38 +02:00
Côme Chilliet
b8ab560bdd
fix(tests): Fix test to remove call to non-existing constructor
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-09-23 14:50:43 +02:00
Louis Chemineau
22d5d29c01
fix(users): Don't crash if disabled user is missing in the database
...
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-09-23 10:40:38 +02: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
Robin Appelman
1db3d94e1e
test: put parent items into cache in tests
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-09-18 16:10:14 +02:00
Robin Appelman
74adaebf96
test: fix incorrect ltrim usage in test
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-09-18 14:11:27 +02:00
Côme Chilliet
cfca7e7911
fix(tests): Fix most obvious errors in ObjectStore tests
...
Some are still failing
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-09-17 19:20:13 +02:00
Côme Chilliet
2bdc97741c
fix(tests): Fix Folder tests
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-09-17 19:19:08 +02:00
Stephan Orbaugh
f25acfb799
Merge pull request #47986 from cfiehe/fix_move_on_same_bucket
...
perf(ObjectStoreStorage): Improve (slow) move on same object bucket
2024-09-17 16:35:19 +02:00
Côme Chilliet
22822d5e9b
fix: Fix other uses of removed Storage interface
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-09-16 18:11:36 +02:00
Côme Chilliet
801733e523
fix: Remove OCP\Files\Storage interface deprecated since version 9
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-09-16 18:10:48 +02:00
Christoph Fiehe
9597072ada
perf(ObjectStoreStorage): Improve (slow) move on same object bucket
...
This commit fixes the issue #47856 . When you upload a file into a group folder and when you use a single S3 bucket as primary storage, the final move operation hangs for a long time. In the background, Nextcloud initiates a copy-delete sequence from the bucket into the bucket, with causes a lot unnecessary overhead. Nextcloud thinks that the file must be imported to another storage and does not recognize that everything is done on the same object bucket. In that case, the import step can be completely skipped, which saves time, network bandwidth and reduces the load on the object storage.
The behavior improves a lot with https://github.com/nextcloud/server/pull/46013 . However, there are still some put messages that are being sent to the object storage when you use an object storage as primary storage and upload files into a group folder.
Co-authored-by: Kate <26026535+provokateurin@users.noreply.github.com>
Signed-off-by: Christoph Fiehe <c.fiehe@eurodata.de>
2024-09-16 15:11:09 +02:00
Christoph Wurst
49dd79eabb
refactor: Add void return type to PHPUnit test methods
...
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2024-09-15 22:32:31 +02:00
Anna Larch
6c36c54dc6
feat(db): switch from settype to casts
...
Signed-off-by: Anna Larch <anna@nextcloud.com>
2024-09-15 19:26:58 +02:00
Git'Fellow
0308001118
fix(files): Check if the target path is a descendant of the shared folder path
...
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
fix: tests
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
fix: fix tests
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
fix: add tests
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
fix: tests
2024-09-05 23:54:01 +02:00
Anna Larch
8af7ecb257
chore: adjust code to adhere to coding standard
...
Signed-off-by: Anna Larch <anna@nextcloud.com>
2024-09-05 21:23:38 +02:00
Kate
09fef8f0ec
Merge pull request #47417 from nextcloud/fix/files/create-mountpoint-parents
2024-09-04 20:00:24 +02:00
Andy Scherzinger
bfb5835750
Merge pull request #47546 from nextcloud/fix/files-view-error-messages
...
fix: Adjust filename validation messages
2024-08-29 23:28:50 +02:00