121 Commits

Author SHA1 Message Date
Josh
2d39c5a179 test(Storage): avoid falsy directory/filename checks (for now)
Signed-off-by: Josh <josh.t.richards@gmail.com>
2026-03-02 13:44:20 +01:00
Josh
ace9eb21e6 test(Storage): expand file / directory name tests
Signed-off-by: Josh <josh.t.richards@gmail.com>
2026-03-02 13:44:20 +01:00
Robin Appelman
bd8f251ad8 test: add test for calling filesize on non-existing files
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-02-24 15:32:06 +01:00
provokateurin
4eada2d804 refactor(Files): Modernize Wrapper
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-02-17 06:43:16 +01:00
provokateurin
5f4a5d8c67 refactor(Files): Remove deprecated streamCopy method
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-02-17 06:43:16 +01:00
provokateurin
f12cecb684 feat(rector): Enable SafeDeclareStrictTypesRector
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-02-09 10:59:31 +01:00
Carl Schwan
c96ece0bcb refactor: Add more typing
- repairs job
- database
- redis

And remove Helpertest which was unused outside of some tests.

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2026-02-06 13:55:39 +01:00
Robin Appelman
2970232790 fix: make failed availability check apply in the same request
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-11-06 20:08:44 +01:00
Ferdinand Thiessen
d6d6747a73 refactor: apply rector rules for PHPUnit 10
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-27 21:56:04 +01: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
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
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
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
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
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
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
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
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
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 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
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
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
256a8d8903 test: Fix IStorage return types
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-09-26 17:29:48 +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
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
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
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
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
John Molakvoæ
d35c4eb911 Merge branch 'master' into jr-readdir-false-false
Signed-off-by: John Molakvoæ <skjnldsv@users.noreply.github.com>
2024-08-16 10:53:50 +02:00
Ferdinand Thiessen
69341e4306 refactor: Migrate filename validation logic from Storage to FilenameValidator
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-07-16 12:49:09 +02:00
Andy Scherzinger
1f7e2ba599 chore: Add SPDX header
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2024-05-13 17:41:36 +02:00
Ferdinand Thiessen
27642d3e6d fix: Enforce forbidden filename characters on backend
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-02-28 22:19:25 +01:00
Robin Appelman
5aea3f4d76 make storage directory test be a bit less strict about mtimes
sometimes the clock ticks over during the test

Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-02-07 12:13:00 +01:00
Joas Schilling
aa5f037af7 chore: apply changes from Nextcloud coding standards 1.1.1
Signed-off-by: Joas Schilling <coding@schilljs.com>
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2023-11-23 10:36:13 +01:00
Robin Appelman
ccf8843d9f apply known mtime wrapper for external storages
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-09-19 13:58:35 +02:00
Robin Appelman
5bf34979fe add wrapper to ensure we don't get an mtime that is lower than we know it is
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-09-19 13:58:15 +02:00
Simon L
489a57e9a3 Merge pull request #39707 from nextcloud/bugfix/39706/local-ext-storage-unavailable-mode 2023-09-04 12:05:36 +02:00
Robin Appelman
e704470c79 update tests
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-08-31 22:37:10 +02:00