Louis Chmn
00ec57efd6
fix(S3): Only append streams if non-seekable
...
Later, when we rewind the stream in `writeMultiPart` during retry, both streams were rewinded, so the resulting stream was bigger than expected.
Inspired by https://github.com/aws/aws-sdk-php/blob/master/src/S3/ObjectUploader.php#L136-L146
Signed-off-by: Louis Chmn <louis@chmn.me>
2025-10-10 09:54:05 +02:00
Marcel Klehr
3522a3375e
fix(FileAccess): Make getAncestorInStorage pass sharding tests
...
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-09 09:27:50 +02:00
Marcel Klehr
b158a77365
fix(FileAccess): Try to fix type error
...
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-09 09:27:50 +02:00
Marcel Klehr
62bff06aeb
fix(FileAccess): Chunk parent query
...
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-09 09:27:50 +02:00
Marcel Klehr
9ccc798655
fix(FileAccess): Make getByAncestorInStorage sharding ready
...
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-09 09:27:50 +02:00
Benjamin Gaussorgues
3aa0c23e40
Merge pull request #54543 from nextcloud/preview-db-rework
2025-10-08 16:39:23 +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
f450cda3aa
chore: Explicitely mark \OC\Files\View as internal
...
It's in OC and should not be used at all. Marking it as internal will
at least prevent new code to use it.
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-10-06 15:49:55 +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
bfc7d5dd9f
feat(preview): Implement scanning for previews
...
This work similarly to the move preview job to migrate the previews to
the new DB table and also reuse some code.
So when we are finding files in appdata/preview, try adding them to the
oc_previews table and delete them from the oc_filecache table.
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
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
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
Kate
057c0dcc98
Merge pull request #55564 from nextcloud/fix/files/return-valid-mimetype
2025-10-06 13:23:54 +02:00
provokateurin
8d8f94b8ce
fix(files): Always return a valid mimetype
...
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-10-06 09:06:17 +02:00
Carl Schwan
34cd91cc86
refactor: Fix some easy psalm issues in Files
...
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-10-02 13:34:47 +02:00
Louis
f8bed8f186
Merge pull request #51145 from nextcloud/home-folder-readonly
2025-10-01 10:09:19 +02:00
Kate
464d12e149
Merge pull request #55374 from nextcloud/fix/files/overwrite-scan-permissions
2025-09-29 18:12:03 +02:00
yemkareems
111f42ca8a
Merge branch 'master' into fix/85262/fix-typo
2025-09-29 17:15:57 +05:30
yemkareems
200f9dc39f
fix: small typo fix
...
Signed-off-by: yemkareems <yemkareems@gmail.com>
2025-09-29 09:12:38 +05:30
Côme Chilliet
d39d1d8d24
chore: Remove unused deprecated methods from OC_User and Filesystem
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-09-28 22:44:30 +02:00
provokateurin
ef279f6049
fix(files): Stop overwriting scan_permissions
...
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-09-28 14:11:47 +02:00
Carl Schwan
4ae4b0a0e7
refactor: Remove old TemplateManager
...
Not used anymore
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-09-28 12:48:41 +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
Kate
c5c3b6555f
Merge pull request #54797 from nextcloud/object-store-total-size-limit
2025-09-27 15:02:28 +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
9277a17a3c
fix: Flag folder objects that got deleted to recreate them if needed
...
AppData caches folder objects, and several places get them to delete
them, so afterwards if the folder gets reused in the same session an
error happens. This is the case in unit tests with user avatars.
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-09-26 15:11:36 +02:00
Louis Chemineau
8c04dbe599
fix(Updater): Lower deadlock log level from warning to info
...
If this is safe to ignore, then it does not make sense to keep warning the admins.
Signed-off-by: Louis Chemineau <louis@chmn.me>
2025-09-16 14:49:54 +02:00
provokateurin
98081dfd42
feat(ObjectStore): Add option to limit the total size
...
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-09-10 08:15:28 +02:00
Côme Chilliet
14d6945054
fix(encryption): Take encryption enabled status into account
...
shouldEncrypt now returns false for all paths if encryption is disabled.
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-09-09 11:46:18 +02:00
Côme Chilliet
12532bb535
fix(encryption): Correctly set encrypted to 0 when copying
...
If encryption got disabled, copying should set encrypted to 0 for the
new unencrypted copy. For instance when using encryption:decrypt-all
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
Ferdinand Thiessen
a31e520019
fix(Filesystem): use FilenameValidator for Filesystem::isFileBlacklisted
...
This fixes the issue that some methods will not allow uploading files
because they still require the deprecated config option to be used.
So instead we need to use the validator introduced in v30.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-09-02 19:02:25 +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
c4e6fbdae7
fix(query-builder): Don't catch UniqueConstraintViolationException
...
UniqueConstraintViolationException is no longer throw directly but
instead is now wrapped inside a \OCP\DB\Exception. So check the
exception reason.
Signed-off-by: Carl Schwan <carl.schwan@nextclound.com>
2025-09-02 11:55:58 +02:00
Carl Schwan
c21b8169ff
refactor(querybuilder): Port away from qb::execute() in lib/
...
Replace by either executeStatement or executeQuery
Signed-off-by: Carl Schwan <carl.schwan@nextclound.com>
2025-09-02 11:55:56 +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
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
Benjamin Gaussorgues
39e2e70084
feat(mounts): optimize load of mounts by filtering on database side
...
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2025-08-26 08:55:24 +02:00
Côme Chilliet
8c21f2b19c
fix(encryption): Fix TypeError when trying to decrypt unencrypted file
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-08-25 13:18:50 +02:00
Robin Appelman
1a716578fd
fix: fix moving cache items from cache jail with sharding
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-08-22 19:21:31 +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
2d4bba7b0c
feat: add command to get user objectstore config mappings
...
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
5987584b90
perf: use more optimized node-by-id logic in View::getPath
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-08-13 19:42:42 +02:00
Robin Appelman
97efc95efc
fix: better object store write error propagation
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-08-05 19:17:58 +02:00
Robin Appelman
83b8a390cd
fix: always do stream counting for object store upload
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-08-05 19:17:58 +02:00
Robin Appelman
398b106f0c
fix: validate written size for s3 multipart uploads
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-08-05 19:17:58 +02:00
Josh
3535149418
refactor(IMimeTypeDetector): streamline finfo usage + misc tidying
...
Signed-off-by: Josh <josh.t.richards@gmail.com>
2025-08-04 11:24:58 -04:00