Commit Graph

1711 Commits (94a5e1440eaa8bf2d7a4ff2a59abf2d045b30845)

Author SHA1 Message Date
Robin Appelman 8519f5adb0 fix: don't update cached mountpoints if the request doesn't have filesystem access
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-08-01 16:04:33 +07:00
Côme Chilliet 72eba38e20
fix(encryption): Correctly handle file opening and copying failures
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-07-03 14:02:48 +07:00
Kent Delante e9aa004b9b fix(s3): retry failed multipart uploads with decreased concurrency
Signed-off-by: Kent Delante <kent.delante@proton.me>
2025-06-20 19:44:55 +07:00
Daniel Calviño Sánchez 5830546c1b fix(ObjectStore): Make S3 "connect_timeout" option configurable
The hardcoded connection timeout of 5 seconds may not be enough in some
cases, so now it is got from the ObjectStore arguments in Nextcloud
configuration, falling back to 5 if not set.

The connection timeout is set in seconds, but decimal precision can be
used for subsecond accuracy (for example, 4.2 for 4200 milliseconds).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2025-06-18 11:02:22 +07:00
Joas Schilling 688dd8be61 fix: Run cleanByMoundId query on all shards
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-06-08 09:28:42 +07:00
Robin Appelman 7eb607c8b9
perf: set the folder size in the same query as we create it
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-06-02 12:00:59 +07:00
Louis Chemineau 1c80a98720 fix(S3): Use original folder size during copy
This prevent having copied folders with a wrongly set size of 0KB.

- Fix https://github.com/nextcloud/server/issues/51916

Signed-off-by: Louis Chemineau <louis@chmn.me>
2025-06-02 09:56:15 +07:00
Jonas 10034c4d15 fix(node): emit hooks on `Node::copy()`
When calling `Files\Node\Node::copy()`, `Files\View::copy()` gets called,
but `Files\View::fakeRoot` is empty so the hooks are not emitted if no
path is given to `Files\View::shouldEmitHooks()`.

This results in node-related events like `NodeCopiedEvent` not being
fired when copying files via `Files\Node\Node::copy()`.

`Files\View::shouldEmitHooks()` is given a path as parameter in almost
all places except when called from the `copy()` function. This commit
changes it and passes the copy target path.

Fixes: nextcloud/collectives#1756

Signed-off-by: Jonas <jonas@freesources.org>
2025-05-28 11:49:58 +07:00
Stephan Orbaugh 0d394fc9e9
Merge pull request #52988 from nextcloud/backport/50157/stable30
[stable30] feat(UserMountCache): Emit events for added, removed and updated mounts
2025-05-27 13:24:15 +07:00
provokateurin a8b96fd4f8
feat(UserMountCache): Emit events for added, removed and updated mounts
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-05-26 08:34:45 +07:00
Robin Appelman fe29175144
Merge pull request #52884 from nextcloud/backport/52873/stable30
[stable30] fix: improve error message when cache rename source can't be found
2025-05-25 16:50:16 +07:00
provokateurin 8ed7fdafaf
fix(SetupManager): Include home and root providers when registering mounts
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-05-20 15:14:08 +07:00
Kate 119727d74a
Merge pull request #52759 from nextcloud/backport/49352/stable30 2025-05-19 06:44:24 +07:00
Robin Appelman 09e1ecd15b
Merge pull request #52867 from nextcloud/backport/51603/stable30
[stable30] Add command to list orphan objects
2025-05-16 21:36:28 +07:00
Louis 921c98e4df
Merge pull request #52696 from nextcloud/backport/49903/stable30 2025-05-16 16:23:56 +07:00
Robin Appelman a4f0a9c7ca fix: improve error message when cache rename source can't be found
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-05-15 16:34:39 +07:00
Robin Appelman 86206e9bac fix: keep IObjectStoreMetaData in private namespace for backports
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-05-15 18:00:35 +07:00
Robin Appelman ca6e59c820
Merge pull request #52824 from nextcloud/backport/52775/stable30
[stable30] fix unjailedroot of nested jails if there are other wrappers in between
2025-05-15 14:57:11 +07:00
Robin Appelman 9da4ebd650 feat: add command to list objects
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-05-15 14:13:06 +07:00
Robin Appelman 042934a99f feat: add command to get object metadata
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-05-15 14:13:06 +07:00
Robin Appelman 855f3f1b4f
Merge pull request #52763 from nextcloud/backport/52706/stable30
[stable30] feat: add more encryption checks to info:file
2025-05-15 14:05:34 +07:00
Robin Appelman b253b70d16
Merge pull request #52761 from nextcloud/backport/52707/stable30
[stable30] fix: throw a better error if we can't get the encrypted header size
2025-05-15 14:03:07 +07:00
Robin Appelman 195358eb8e fix: fix unjailedroot of nested jails if there are other wrappers in between
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-05-14 20:08:02 +07:00
Robin Appelman e5aabded60 test: add test for nested cache jail unjailedroot
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-05-14 20:06:56 +07:00
Robin Appelman f2798bf0d4 fix: improve handling of newFolder race condition handling
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-05-13 11:59:28 +07:00
Robin Appelman fa135d9535 fix: throw a better error if we can't get the encrypted header size
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-05-12 14:14:59 +07:00
Robin Appelman 0fe56ce669 feat: add more encryption checks to info:file
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-05-12 11:27:29 +07:00
Robin Appelman 87a4bff4ee chore: cleanup leftover debug statement
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-05-12 11:59:53 +07:00
Robin Appelman eade5703ba fix: get object size from stream where possible
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-05-12 11:59:47 +07:00
Robin Appelman 6632669157 fix: don't perform the extra buffering in s3 stream write when the stream size is known
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-05-12 11:58:34 +07:00
Robin Appelman b1ad63666f fix: use php://temp instead of php://memory for multi-part upload buffer
this should reduce potential memory issues if the limit is set very high

Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-05-12 11:58:23 +07:00
Robin Appelman 697a20ef2a fix: restore updated encrypted version when copying versions
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-05-08 18:57:17 +07:00
Ferdinand Thiessen 832f79ac93
chore: apply code style
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-30 19:04:59 +07:00
Côme Chilliet 3646da59f3 fix: Fix copying to the root of another mountpoint
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-04-28 10:23:21 +07:00
Anna Larch cae5c4f02b fix(objectstorage): add retry attempts to S3 connection
Signed-off-by: Anna Larch <anna@nextcloud.com>
2025-04-23 18:40:07 +07:00
Louis e08afe0849
Merge pull request #52184 from nextcloud/backport/51020/stable30 2025-04-17 11:38:34 +07:00
Louis Chemineau 9bed21a8d7 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-16 16:18:42 +07:00
Robin Appelman a4d2af5155 fix: only do cache copy in updater if the parent folder should be in cache
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-04-15 18:05:36 +07:00
Julius Knorr d38a431030 fix: Catch old cached paths and fetch the new one
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-04-08 12:44:02 +07:00
Julius Knorr af1112dac3 fix: Proper order for checking path prefix for getting file by id from cache
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-04-08 12:44:01 +07:00
Ferdinand Thiessen d0402dee06 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-24 11:46:43 +07:00
Git'Fellow 552c5e8cef fix(files): Make sure file pointer exists
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2025-03-17 16:04:47 +07:00
Louis acf19f7880
Revert "Revert "[stable30] fix: Handle copy of folders containing live photos""
Signed-off-by: Louis Chemineau <louis@chmn.me>
2025-03-05 13:45:23 +07:00
Marcel Müller c6ca459b40 fix: No IFactory in constructor
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
2025-03-05 11:34:03 +07:00
Joas Schilling 259919e9fd fix(files): Don't do session related work in the constructor of the View
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-03-05 11:34:03 +07:00
Andy Scherzinger 682c8e6a61
Merge pull request #50796 from nextcloud/backport/50781/stable30
[stable30] perf(files): faster query to fetch incomplete directories
2025-02-17 19:15:58 +07:00
Robin Appelman 33fb176651 fix: make locked exception path relative to the view
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-02-15 14:42:51 +07:00
Benjamin Gaussorgues 765b4921ff
perf(files): faster query to fetch incomplete directories
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2025-02-14 10:57:26 +07:00
Andy Scherzinger 7bf1126b1f
Merge pull request #49657 from nextcloud/backport/48769/stable30
[stable30] Fix incorrect permissions when copying shared files
2025-02-14 10:30:46 +07:00
Louis Chemineau a663b3e0cd 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>
2025-02-13 23:35:59 +07:00