Commit Graph

1669 Commits (b0197c5dfcb0dac94de43bfbfa89a2889fc1e30b)

Author SHA1 Message Date
Robin Appelman 5ea69768b0
Merge pull request #41015 from nextcloud/background-scan-catch-storage-error
continue background scanning different storages if one fails
2024-02-07 10:06:32 +07:00
Ferdinand Thiessen 414a4caa65
Merge pull request #43361 from nextcloud/fix/add-missing-phpdoc-template-parameters
chore: Add missing ArrayAccess template parameters
2024-02-06 15:11:50 +07:00
Christoph Wurst 67a3ab48b5
Merge pull request #43131 from nextcloud/fix/files/cache-wrapper-no-partial-cache-entry-formatting
fix(files): Don't attempt to format a partial cache entry
2024-02-06 13:51:51 +07:00
Côme Chilliet f73f966c98 chore: Add missing ArrayAccess template parameters
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-02-06 10:24:41 +07:00
Côme Chilliet b2e9e0fa0d chore: Replace OC::$server->getL10N by OCP\Util::getL10N in lib and some apps
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-02-05 11:16:04 +07:00
Thomas Citharel 30798eb6c2
refactor(objectstorage): cleanup types
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2024-02-02 14:59:21 +07:00
Thomas Citharel 3be3dbdb3b
refactor(objectstorage): move $user property from ObjectStoreStorage class to HomeObjectStoreStorage
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2024-02-02 14:59:21 +07:00
Thomas Citharel 4c618c4bf1
fix(objectstorage): cleanup HomeObjectStoreStorage
Fix invalid signature for getUser() method and change occurences of OC\User\User for OCP\IUser

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2024-02-02 14:59:20 +07:00
Robin Appelman 3066687c7d
Merge branch 'master' into background-scan-catch-storage-error 2024-01-31 19:42:58 +07:00
Robin Appelman b777304a77
also updated parent etags when a changed etag is detected during scanning
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-01-31 18:06:18 +07:00
Robin Appelman e14bceb63f
dont reuse etag for folders marked explicitly unscanned
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-01-31 18:05:09 +07:00
Lorenz Brun a6f879e154 dav: fix wrong decoding of pluses in URLs
PHP's urldecode function does not decode URLs according to RFC 3986, but
according to the HTML 4.01 query parameter
encoding. This results in pluses being wrongly decoded to spaces even
though they should not be decoded at all.

Use rawurldecode instead, which follows RFC 3986 properly.

This fixes an issue where files on DAV shares containing pluses were
incorrectly decoded to spaces.

Fixes: #15849
Signed-off-by: Lorenz Brun <lorenz@brun.one>
2024-01-31 13:26:04 +07:00
Christoph Wurst 7e5303bec7
fix(files): Don't attempt to format a partial cache entry
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2024-01-25 19:30:38 +07:00
Julius Härtl cc75294eb6 perf: Avoid updating the folder size if we know the size difference
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2024-01-12 14:21:08 +07:00
Julius Härtl e4054370b1
fix(s3): Add config option to disable multipart copy for certain s3 providers
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-12-28 15:31:38 +07:00
Robin Appelman 1043c21b35
only do a multipart s3 copy when above the regular copy limit
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-12-28 15:31:37 +07:00
Marcel Klehr 062a0efed5 fix(TemplateManager): Bail early if templatedirectory is empty
fixes #39266

Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2023-12-04 08:53:52 +07:00
Louis Chemineau 2f6a4bf4a1
Synchronize operation on live photo files
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-11-29 19:07:32 +07:00
Git'Fellow 394cd75322
Merge pull request #41272 from nextcloud/fixOccScans
fix: reduce memory consumption of scans
2023-11-28 11:36:59 +07: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 +07:00
Maxence Lange ee787cd1c6
Merge pull request #41459 from nextcloud/enh/noid/search-metadata-null
implements search on null/notnull metadata
2023-11-23 07:52:27 +07:00
Andy Scherzinger 42724c15c5
Merge pull request #40462 from nextcloud/refactor/lib-array_search-to-in_array
refactor: Replace array_search with in_array in lib/
2023-11-22 20:42:52 +07:00
Maxence Lange 7467422f57 implements search on null/notnull metadata
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2023-11-22 12:43:27 +07:00
Ferdinand Thiessen 9c3321c524
Merge pull request #41565 from nextcloud/fix/object-storage-inconsitent-behavior
fix(ObjectStore): Make copying behavior consistent with local storage
2023-11-22 13:54:01 +07:00
Christoph Wurst ea8f9a7e84 refactor: Repalce array_search with in_array in lib/
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-11-22 11:42:53 +07:00
Maxence Lange ff823cf926 accept boolean value
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2023-11-22 01:20:42 +07:00
Ferdinand Thiessen 5172baaf8b
fix(ObjectStore): Make copying behavior consistent with local storage
Drop file permissions on copy like we do on local storage.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2023-11-17 12:54:37 +07:00
Robin Appelman b942850af9
optimize UserMountCache::registerStorage
Signed-off-by: Robin Appelman <robin@icewind.nl>
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2023-11-16 16:21:59 +07:00
Benjamin Gaussorgues cb4e367a22
Merge pull request #40935 from nextcloud/local-case-insensitive
add some support for rename on case insensitive local filesystems
2023-11-15 13:58:44 +07:00
Julius Härtl 830d85bcf1
Merge pull request #41366 from ir0nhide/fix/multipart-copy-ssec 2023-11-15 08:24:06 +07:00
Git'Fellow e0cafc8fe8
Merge pull request #38622 from nextcloud/ifElseReturnMatch
Replace if/else with return match
2023-11-15 00:05:52 +07:00
Tobias Zimmerer cdf96fab92 fix(s3): support SSE-C headers for the MultipartCopy call
Signed-off-by: Tobias Zimmerer <3228193+ir0nhide@users.noreply.github.com>
2023-11-14 21:19:59 +07:00
Maxence Lange 761a688ec9 fix psalm
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2023-11-14 10:11:24 +07:00
Maxence Lange 3af12b2a50 ignore metadata if table is empty
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2023-11-14 09:28:58 +07:00
Maxence Lange 380b81315a moving metadataquery
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2023-11-13 22:25:37 +07:00
Benjamin Gaussorgues a75a93af8e
feat(files): Allow advanced search for files
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2023-11-10 09:21:16 +07:00
Joas Schilling 67958915da
fix(events): Make sure all `\OCP\Files::…` events are emitted with the same data
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-11-09 15:57:22 +07:00
Robin Appelman b29bc59e8b
Merge pull request #41119 from nextcloud/optmize-storage-wrappers
optimize builtin storage wrappers
2023-11-08 22:14:19 +07:00
Louis 77c9550353
Merge pull request #40964 from nextcloud/artonge/feat/metadata/port_providers
Support dynamic metadata request on PROPFIND requests
2023-11-08 17:58:20 +07:00
Robin Appelman f4fa2fb93c
optimize isShared and isMounted
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-11-08 17:34:58 +07:00
Louis Chemineau d3a313f192
Support getting and setting metadata in DAV requests
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-11-08 16:23:53 +07:00
Robin Appelman 79088ea15f
Merge pull request #40996 from nextcloud/view-share-disable-reuse
reuse sharing disabled state when listing folder content
2023-11-08 15:52:35 +07:00
Robin Appelman dec880b285
optimize builtin storage wrappers
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-11-08 15:26:10 +07:00
Maxence Lange f497d8b6e5 IFilesMetadata
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2023-11-07 12:43:08 +07:00
Maxence Lange e62e9e3dbf IFilesMetadata
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2023-11-07 00:21:38 +07:00
Git'Fellow b4a3773115 fix: reduce memory consumption of scans
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>

Fix lint

Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2023-11-03 18:07:42 +07:00
Arthur Schiwon 333ab4de68
Merge pull request #40995 from nextcloud/cache-jail-optimizations
optimize cache jail creation
2023-11-03 17:03:09 +07:00
Git'Fellow 3bedfdf6ff Replace if/else with return match
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2023-11-01 10:33:42 +07:00
Joas Schilling 2b7f78fc2e
Merge pull request #40326 from nextcloud/enh/text-to-image-api
Implement TextToImage OCP API
2023-10-26 15:53:30 +07:00
Robin Appelman efe68d012c
Merge pull request #39044 from nextcloud/more-empty-mount-checking
Fix root mounts not being setup in some cases
2023-10-24 16:54:05 +07:00
Jonas 7441ce2b11
enh(IMountManager): Add method to get MountPoint from CachedMountInfo
Signed-off-by: Jonas <jonas@freesources.org>
2023-10-23 20:50:24 +07:00
Marcel Klehr 71a06b6bf8 fix(Folder): Allow filename to be '0'
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2023-10-22 12:22:30 +07:00
Robin Appelman a8e6d89d3b
continue background scanning different storages if one fails
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-10-20 16:31:48 +07:00
Robin Appelman 8418fcfedf
add some support for rename on case insensitive local filesystems
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-10-20 15:03:11 +07:00
Robin Appelman 9bc44de95d
reuse sharing disabled state when listing folder content
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-10-19 19:40:52 +07:00
Robin Appelman 460344336e
optimize cache jail creation
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-10-19 19:27:00 +07:00
John Molakvoæ 80893480c1
Merge pull request #40478 from nextcloud/node-from-entry 2023-10-18 10:44:21 +07:00
John Molakvoæ 4b55594f55
feat(files): migrate template picker
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2023-10-17 11:17:35 +07:00
Hamid Dehnavi ea06cf2f39 Convert isset ternary to null coalescing operator
Signed-off-by: Hamid Dehnavi <hamid.dev.pro@gmail.com>
2023-09-28 17:44:19 +07:00
Côme Chilliet dc347b39c1
Merge pull request #40501 from nextcloud/fix/fix-int-size-in-files-scanner
Store size in int|float for 32bit support
2023-09-25 16:32:32 +07:00
Robin Appelman b11ca34bbd
Merge pull request #40499 from nextcloud/known-mtime-wrapper
add wrapper for external storage to ensure we don't get an mtime that is lower than we know it is
2023-09-21 18:33:15 +07:00
Robin Appelman ef87ff1848
Merge pull request #39216 from shdehnavi/replace_substr_calls_in_lib_private
Refactor "substr" calls in lib/private to improve code readability
2023-09-21 16:34:27 +07:00
Robin Appelman eab8dd3ca0 use multipart copy for s3
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-09-20 17:28:48 +07: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 +07:00
Côme Chilliet 5090848b25
Store size in int|float for 32bit support
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-09-19 13:43:01 +07:00
Robin Appelman 5e347553bc add method to create a node from cache entry + mountpoint
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-09-19 11:43:29 +07:00
Simon L 7bba5ec71e
Merge pull request #40203 from lhsazevedo/fix/mimetype-40064 2023-09-16 21:17:24 +07:00
Julius Härtl 7f958e81d3
fix: Pass parent to NonExistingFile instances
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-09-13 10:28:28 +07:00
Robin Appelman 1eb3293e53
setup filesystem wrappers before we mark the root as setup
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-09-12 16:50:29 +07:00
Robin Appelman 5685d68bd3
add more checks to ensure mounts aren't empty
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-09-12 16:50:24 +07:00
Benjamin Gaussorgues 003d0dec93 Detect aborted connection in OC\Files\View and stop writing data to the output buffer
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2023-09-07 09:32:32 +07:00
Julius Härtl 13b9dd2267 fix: Only read unencrypted_size when file is actually encrypted
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-09-06 07:25:28 +07:00
Julius Härtl 88a96e4db7 fix: Only store unencrypted_size if path should be encrypted
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-09-06 07:25:28 +07:00
Robin Appelman 5ac0e9b63b
reuse isValidPath from Filesystem
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-09-04 18:42:50 +07:00
Robin Appelman baf8d2e1d0
make LazyFolder::get not load the real folder if we know the path
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-09-04 18:42:49 +07:00
Robin Appelman 9055fef5ef
add IFileInfo::getParentId
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-09-04 18:42:49 +07:00
Robin Appelman e718cbc661
make Node::getParent lazy
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-09-04 18:42:48 +07:00
Robin Appelman 0232eec2cf
allow passing more info to lazy folder
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-09-04 18:42:47 +07:00
Robin Appelman 64f62f7cfd
Merge pull request #39863 from nextcloud/sharing-mask-wrapper
move share permission logic to storage wrapper
2023-09-04 14:05:14 +07:00
Lucas Azevedo c587f684bd Wrap mimetype insert and getLastInsertId in a transaction
Signed-off-by: Lucas Azevedo <lhs_azevedo@hotmail.com>
2023-09-04 08:02:35 +07:00
Simon L 489a57e9a3
Merge pull request #39707 from nextcloud/bugfix/39706/local-ext-storage-unavailable-mode 2023-09-04 12:05:36 +07:00
Lucas Azevedo 5de021cb9a fix(mimetype): Remove unnecessary transaction when storing a mime type
Fixes #40064.

This could be fixed by adding a rollback and starting a new transaction
before the SELECT query, but in this case that would have the same
effect as not using one.
See https://dev.mysql.com/doc/refman/8.0/en/innodb-autocommit-commit-rollback.html
and https://www.postgresql.org/docs/7.1/sql-begin.html#R1-SQL-BEGIN-1

Signed-off-by: Lucas Azevedo <lhs_azevedo@hotmail.com>
2023-09-01 14:20:21 +07:00
John Molakvoæ 750a9f2c4a
fix: prevent sharing permissions on user root folder
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2023-09-01 13:53:41 +07:00
Robin Appelman 4711c775b8
Merge pull request #36068 from nextcloud/gf-encryption-fix
extend fix-key-location to handle cases from broken cross-storage moves
2023-09-01 13:01:04 +07:00
Thomas Citharel 3f28fc58aa fix(s3): fix handling verify_bucket_exists parameter
If 'verify_bucket_exists' is set to false in the config.php s3 configuration, it's supposed to avoid
verifying that the bucket exists. However empty(falsy) will  always return true, so this condition
would not work.

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2023-08-31 21:36:03 +07:00
Robin Appelman e4f85226c5
extend fix-key-location to handle cases from broken cross-storage moves
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-08-31 19:46:47 +07:00
Andrew Summers 4536029589
Refactor `OC\Server::getHTTPClientService`
Signed-off-by: Andrew Summers <18727110+summersab@users.noreply.github.com>
2023-08-29 21:30:01 +07:00
Vincent Petry 8d1a3daa3f Allow ext storage Local to go unavailable
Whenever an external storage of type Local points at a non-existing
directory, process this as a StorageNotAvailable instead of returning
404.

This makes desktop clients ignore the folder instead of deleting it when
it becomes unavailable.

The code change was limited to external storages to avoid issues during
setup and with the default home storage.
Signed-off-by: Vincent Petry <pvince81@yahoo.fr>
2023-08-29 11:04:31 +07:00
John Molakvoæ b11532ce56
Merge pull request #39958 from nextcloud/dav-permissions-perf 2023-08-22 19:14:53 +07:00
Robin Appelman b6c3507aa0 only determine quota_include_external_storage once for quota wrapper
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-08-18 14:25:28 +07:00
Robin Appelman e98e8f10c9 improve performance of calculating dav permissions
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-08-18 14:09:03 +07:00
Robin Appelman 9ea03a9534 reuse dependencies from wrapped cache
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-08-18 11:14:52 +07:00
Julius Härtl 45595a8417
Merge pull request #39481 from nextcloud/fix/transfer-ownersip 2023-08-17 13:23:04 +07:00
Anna Larch 556f29bef5 fix: don't emit Hooks when hookpaths are empty
Signed-off-by: Anna Larch <anna@nextcloud.com>
2023-08-17 09:32:14 +07:00
Robin Appelman e73889a240 cleanup di for share permissions wrapper
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-08-16 15:25:05 +07:00
Ferdinand Thiessen 9c04c07622 fix: Prevent PHP warnings when optional CacheEntry attributes are unset
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2023-08-16 14:12:51 +07:00
Robin Appelman a031bc4788 more share permission logic to storage wrapper
this way we only have to determine the share permissions once

Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-08-14 18:17:27 +07:00
Robin Appelman 658aed27ea select the fileid first when looking for incomplete files
this seems to improve mariadbs index selection

Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-08-14 18:08:01 +07:00
Daniel 2ea6c5364d
Merge pull request #39644 from nextcloud/fix/noid/copy-delete-fallback-for-files
fix: copy-and-delete fallback should use unlink
2023-08-14 12:29:40 +07:00
John Molakvoæ b27a2e9ec5
Merge pull request #39698 from joshtrichards/invalid-source-storage-path-catch 2023-08-05 12:17:33 +07:00
John Molakvoæ 7b7d1e3c09
fix: simplify `sourceData` check
Co-authored-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
Signed-off-by: John Molakvoæ <skjnldsv@users.noreply.github.com>
2023-08-05 12:05:36 +07:00
Joas Schilling 44b4c16a09
Merge pull request #39605 from nextcloud/bugfix/noid/final-events-cleanup
fix!: Final round of moving to IEventDispatcher
2023-08-04 10:39:57 +07:00
Josh Richards deecb48e54
Catch more invalid cache source storage paths
OC\Files\Cache\Cache::get can return string|false|null, not just string|false.

- nextcloud/server#26270 added handling of false, but null is needed too.
- Well, or we change the default $resullt to false, but I'm not sure if that has other ramifications and the real need here is to simply catch situations where the cache source storage path is not valid for whatever reason

Related: nextcloud/server#19009

Signed-off-by: Josh Richards <josh.t.richards@gmail.com>
2023-08-03 09:53:46 +07:00
Daniel Kesselberg f1d4f7c7e4
fix: copy-and-delete fallback should use unlink
because rmdir does not work for files.

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2023-07-31 21:41:25 +07:00
Daniel Kesselberg b4ff557b8c fix(storage): fallback to copy and unlink when rename fails
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2023-07-31 18:54:21 +07:00
Tobias Zimmerer 23f85b5ac2 fix(s3): add SSE-C parameters to headObject call
Signed-off-by: Tobias Zimmerer <3228193+ir0nhide@users.noreply.github.com>
2023-07-30 22:54:58 +07:00
Robin Appelman fda820a64d
expose MovableMount in public interface
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-07-28 14:42:09 +07:00
Joas Schilling 3962cd0aa8
fix!: Move getEventDispatcher usage to IEventDispatcher
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-07-28 14:11:22 +07:00
Joas Schilling 44a0a62107
fix: Move Node HookConnecter events to IEventDispatcher
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-07-27 09:57:53 +07:00
Robin Appelman 31f1ff87d0
Merge pull request #39367 from nextcloud/s3-fopen-exception
handle more exceptions in AmazonS3::fopen
2023-07-20 19:32:03 +07:00
Robin Appelman c912a3f0f6
Merge pull request #38860 from nextcloud/scanner-change-summary
add summary of detected changes to files:scan output
2023-07-20 18:37:07 +07:00
Julius Härtl 77f249726d
Merge pull request #38934 from nextcloud/bugfix/noid/ssec-multipart 2023-07-20 11:00:08 +07:00
Robin Appelman b0e663fa28
fix SeekableHttpStream::stream_stat errors on failed open
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-07-13 15:38:58 +07:00
Arthur Schiwon f2642fcceb
fix(node): non-existing folder is not searchable
the previosuly introduced searchBySystemTag was not overwritten in
NonExistingFolder and could run the inherited method.

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-07-13 00:01:32 +07:00
Hamid Dehnavi d0b20534b9 Refactor "substr" calls to improve code readability
Signed-off-by: Hamid Dehnavi <hamid.dev.pro@gmail.com>
2023-07-07 04:54:20 +07:00
Christoph Wurst 14719110b9 chore: Replace \OC::$server->query with \OCP\Server::get in /lib
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-07-06 15:21:22 +07:00
Richard Steinmetz c4eccbb304
fix(sse): don't update uncached files
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2023-07-04 12:42:29 +07:00
Julius Härtl eddb64f8c3
Merge pull request #37969 from nextcloud/poc/noid/systemtags-perf-tag-endpoint 2023-06-28 07:53:35 +07:00
Robin Appelman 39a0554c09
Merge pull request #38858 from nextcloud/scanner-performance3
file scanner performance improvements
2023-06-26 17:01:18 +07:00
Josh Richards e7cbaf3ee3 Clean-up some remaining readdir calls with undesirable false evaluation potential
Signed-off-by: Josh Richards <josh.t.richards@gmail.com>
2023-06-24 15:37:06 +07:00
Arthur Schiwon 17515995fa
Merge pull request #38625 from nextcloud/fix/noid/querysearchehelper-narrow-type
fix: expect interface, not a specific implementation
2023-06-24 00:13:43 +07:00
Robin Appelman 493e151be0
dav: clean path before putting it in the statcache
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-06-23 14:39:17 +07:00
Robin Appelman 279822c217
implement optimized getDirectoryContent for DAV
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-06-22 16:34:32 +07:00
Arthur Schiwon a0f9556f7c
fix: cominbation of small fixes
- possible null return
- parameter name mismatch in implementation
- incomplete unit test

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-21 20:28:01 +07:00
Arthur Schiwon 49db546f78
fix: include invisible tags for admins
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-21 20:28:01 +07:00
Julius Härtl ea575e342f
fix(s3): Pass SSE-C parameters for multipart upload
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-06-21 18:32:24 +07:00
Arthur Schiwon 221562d45d
feat: add searchBySystemTag as PHP API
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-21 18:19:09 +07:00
Arthur Schiwon 783e32a64d
fix: favorites view and universal search against tags
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-21 18:19:08 +07:00
Arthur Schiwon b0d1cf5730
fix: change if with conditionless else to switch; and a parameter value
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-21 18:19:08 +07:00
Arthur Schiwon 58f7fd2370
use efficient tag retrieval on DAV report request
- uses DAV search approach against valid files joined by systemtag selector
- reduced table join for tag/systemtag search
- supports pagination
- no changes to the output formats or similar

Example request body:

<?xml version="1.0"?>
<oc:filter-files xmlns:d="DAV:" xmlns:oc="http://owncloud.org/ns" xmlns:nc="http://nextcloud.org/ns" xmlns:ocs="http://open-collaboration-services.org/ns">
  <d:prop>
    <d:getcontentlength/>
    <d:getcontenttype/>
    <d:getetag/>
    <d:getlastmodified/>
    <d:resourcetype/>
    <nc:face-detections/>
    <nc:file-metadata-size/>
    <nc:has-preview/>
    <nc:realpath/>
    <oc:favorite/>
    <oc:fileid/>
    <oc:permissions/>
    <nc:nbItems/>
  </d:prop>
  <oc:filter-rules>
    <oc:systemtag>32</oc:systemtag>
  </oc:filter-rules>
  <d:limit>
    <d:nresults>50</d:nresults>
    <nc:firstresult>0</nc:firstresult>
  </d:limit>
</oc:filter-files>

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-21 18:19:08 +07:00
Arthur Schiwon 088a0eea29
ci: pro forma check of existence of internal method
createNode() is protected and used by Folder, but being an internal-only
method it shall not be exposed in the Folder or IRootFolder interface.

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-21 16:53:20 +07:00
Arthur Schiwon 71e41ffeeb
refactor: declare getMount() and getMountsIn() at IRootFolder
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-21 16:53:20 +07:00
Arthur Schiwon f6ac874dbf
chore: ugly type juggling
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-21 16:53:20 +07:00
Arthur Schiwon 167a5f394d
fix: add typehine for IRootFolder
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-21 16:53:19 +07:00
Arthur Schiwon eb50b6c6aa
fix: expect interface, not a specific implementation
- fixes a regression when deleting folders while music app was enabled,
  for a LazyRoot was passed to this method.

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-21 16:53:13 +07:00
Robin Appelman de85610385 use source cache when listing folder during recursive copy
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-06-19 16:40:15 +07:00
Robin Appelman 292c0e53f8
add summary of detected changes to files:scan output
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-06-16 17:56:34 +07:00
Robin Appelman 561536fc58
file scanner performance improvements
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-06-16 16:31:48 +07:00
Dominik Fuchß e3f6a13e14 Fix deprecated method call
Signed-off-by: Dominik Fuchß <develop@fuchss.org>
2023-06-13 10:31:33 +07:00
Dominik Fuchß a4a57409db Changes after code review.
Signed-off-by: Dominik Fuchß <develop@fuchss.org>
2023-06-13 10:31:33 +07:00
Dominik Fuchß c3ba871f36 Add config variable for curl timeout
Add the config variable for curl calls ("remote_curl_timeout"). E.g., needed for nextcloud federation.

Signed-off-by: Dominik Fuchß <develop@fuchss.org>
2023-06-13 10:31:33 +07:00
Robin Appelman ea88ec1350
add utility command for object store objects
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-06-09 18:08:18 +07:00
Christoph Wurst 872c181c74
chore: Drop dead private methods in /lib
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-06-06 11:01:58 +07:00
Simon L 702196dd86
Merge pull request #38478 from nextcloud/backport/38440/master
[master] fix: Catch Deadlock properly as execute throws Doctrine exceptions not our wrapped ones
2023-06-05 23:22:40 +07: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 +07:00
Julius Härtl 9453c2d40d fix: execute throws docrine exceptions not our wrapped ones
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-05-26 06:56:55 +07:00
Simon L f29aa2997e
Merge pull request #38429 from tanganellilore/fix_delete_user_syslink
Fix deletion of User when system link are used in him user folder
2023-05-26 01:12:34 +07:00
Lorenzo Tanganelli 6b55e92e33
invert elseif on rmdir for local storage
Signed-off-by: Lorenzo Tanganelli <lorenzo.tanganelli@hotmail.it>
2023-05-24 08:22:50 +07:00
Robin Appelman cc0ad25c98
don't always check if we need to setup the object store root
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-05-23 17:44:40 +07:00
Faraz Samapoor 9f6f4b105f
Update Detection.php
The latter implies the former.

https://github.com/nextcloud/server/pull/38261#discussion_r1196708412

Signed-off-by: Faraz Samapoor <f.samapoor@gmail.com>
2023-05-17 20:37:35 +07:00
Simon L ab848244fe
Merge pull request #38065 from nextcloud/fix-result-mimetype-loader
fix(mimetype): Fix returning value when finding existing mimetype in MimeType Loader
2023-05-16 11:30:13 +07:00
Côme Chilliet 8362eea14e
Merge pull request #38196 from nextcloud/fix/fix-32bits-freespace-and-sizes
Get rid of more int casts in file size manipulations
2023-05-15 17:05:46 +07: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 +07:00
Côme Chilliet ae525e1935
Fix return types in phpdoc
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-05-15 12:24:42 +07:00
Côme Chilliet 3bf19f76e6
Merge pull request #32961 from nextcloud/more-debug-lazyuserfolder
Make it easier to debug issue #32304
2023-05-15 11:42:06 +07:00
Julius Härtl e18f97fc95
Merge pull request #37709 from nextcloud/bugfix/deadlock 2023-05-13 13:13:04 +07:00
Julius Härtl 8cab1d73ac
Merge pull request #37621 from nextcloud/enh/lock-readable-path 2023-05-13 13:11:37 +07:00
Côme Chilliet a90581b405
Get rid of more int casts in file size manipulations
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-05-11 12:46:16 +07:00
Arthur Schiwon b6c034ac57
Merge pull request #37961 from nextcloud/poc/noid/systemtags-perf
SystemTags endpoint to return tags used by a user with meta data
2023-05-11 10:16:03 +07:00
John Molakvoæ db02684008
Merge pull request #37691 from nextcloud/object-store-background-scan 2023-05-11 08:15:41 +07:00
Robin Appelman 2ea41dab93
repair -1 folder sizes for object store background scan
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-05-10 19:33:26 +07:00
Arthur Schiwon df662f50bd
refactor: remove where specification from SELECT getter
- search constraints are now fully in control of
  SystemTagsInFilesDetector::detectAssignedSystemTagsIn(), avoids
  duplication of a WHERE statement

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-05-10 18:48:06 +07:00
Arthur Schiwon dbfd2f936a
refactor: remove SystemTag logic from Folder into QuerySearchHelper
- adds OC\SystemTag\SystemTagsInFilesDetector where the search logic is
  moved to

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-05-09 23:51:52 +07:00
Arthur Schiwon 2489a2d63a
feat: specify media type via url path: systemtags-current/$mediaType
- only the media part of the mime type can be search, but not the full
  mime type. It can be added, should it become necessary.
- thus fixes previously hardcoded selector for image/ types
- also fixes a return type hint
- adds a return type hint

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-05-09 23:51:51 +07:00
Arthur Schiwon 6bff6a5667
PoC: SystemTags endpoint to return tags used by a user with meta data
Target case is photos app: when visiting the tags category, all systemtags
of the whole cloud are retrieved. In subequent steps the next tag is
requested until the browser view is filled with tag tiles (i.e. previews
are requested just as well).

With this approach, we incorpoate the dav search and look for user related
tags that are used by them, and already returns the statistics (number of
files tagged with the respective tag) as well as a file id for the purpose
to load the preview. This defaults to the file with the highest id.

Call:
curl -s -u 'user:password' \
  'https://my.nc.srv/remote.php/dav/systemtags-current' \
  -X PROPFIND -H 'Accept: text/plain' \
  -H 'Accept-Language: en-US,en;q=0.5'  -H 'Depth: 1' \
  -H 'Content-Type: text/plain;charset=UTF-8' \
  --data @/home/doe/request-systemtag-props.xml

With request-systemtag-props.xml:
<?xml version="1.0" encoding="UTF-8"?>
<d:propfind xmlns:d="DAV:">
        <d:prop xmlns:oc="http://owncloud.org/ns" xmlns:nc="http://nextcloud.org/ns">
                <oc:id/>
                <oc:display-name/>
                <oc:user-visible/>
                <oc:user-assignable/>
                <oc:can-assign/>
                <nc:files-assigned/>
                <nc:reference-fileid/>
        </d:prop>
</d:propfind>

Example output:
  …
  <d:response>
    <d:href>/master/remote.php/dav/systemtags/84</d:href>
    <d:propstat>
      <d:prop>
        <oc:id>84</oc:id>
        <oc:display-name>Computer</oc:display-name>
        <oc:user-visible>true</oc:user-visible>
        <oc:user-assignable>true</oc:user-assignable>
        <oc:can-assign>true</oc:can-assign>
        <nc:files-assigned>42</nc:files-assigned>
        <nc:reference-fileid>924022</nc:reference-fileid>
      </d:prop>
      <d:status>HTTP/1.1 200 OK</d:status>
    </d:propstat>
  </d:response>
  <d:response>
    <d:href>/remote.php/dav/systemtags/97</d:href>
    <d:propstat>
      <d:prop>
        <oc:id>97</oc:id>
        <oc:display-name>Bear</oc:display-name>
        <oc:user-visible>true</oc:user-visible>
        <oc:user-assignable>true</oc:user-assignable>
        <oc:can-assign>true</oc:can-assign>
        <nc:files-assigned>1</nc:files-assigned>
        <nc:reference-fileid>923422</nc:reference-fileid>
      </d:prop>
      <d:status>HTTP/1.1 200 OK</d:status>
    </d:propstat>
  </d:response>
  …

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-05-09 23:51:48 +07:00
Côme Chilliet 1cc1866ba3
Add back missing slash in LazyUserFolder path
Signed-off-by: Côme Chilliet <91878298+come-nc@users.noreply.github.com>
2023-05-09 10:59:31 +07:00
Côme Chilliet 6034cc6893 Make sure to never trigger files hooks on a null path
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-05-04 17:55:09 +07:00
Carl Schwan 85770f3b9f Make it easier to debug issue #32304
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2023-05-04 11:11:52 +07:00
Thomas Citharel 375466819e
fix(mimetype): Fix returning value when finding existing mimetype in MimeType Loader
Also, only return the ID from the transaction as the mimetype string is
already used from the function argument value

Fixes https://github.com/nextcloud/server/pull/35744/files#r1184644610

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2023-05-04 11:15:50 +07:00
Arthur Schiwon 997efe44ff
Merge pull request #37943 from nextcloud/fix/fix-getcontent-return-type
Fix file_get_content signatures to make it clear it can return false
2023-05-03 10:34:51 +07:00
Julius Härtl 3bdd770129
fix: Check for wrapped retriable exceptions
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-05-02 19:42:11 +07:00
Julius Härtl 11c5bc6a2a
fix: Wrap filesystem LockedExceptions for holding the readable path
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-05-02 19:40:27 +07:00
Simon L 4dfadcabb9
Merge pull request #38014 from nextcloud/norm-logic
Normalize logical operators
2023-05-02 16:27:58 +07:00
Git'Fellow 951c5b973e
Normalize logical operators
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2023-05-02 10:10:02 +07:00
Robin Appelman f5e2b0b22f
allow storing multiple mounts for the same rootid in the mount cache
currently `[$userId, $rootId]` is used as the unique key for storing mounts in the mount cache,
however there are cases where the same rootid is mounted in multiple places for a user which currently leads to not all of those mounts being added to the cache.

Previously this didn't matter as the mount cache was only used to list users with access to a specific file, so a user having access to the file multiple times didn' change anything.

With 24 the mount cache is used for more cases and multiple mounts for the same id becomes relevant.
While I think there isn't a real negative effect atm besides missing the optimized path we should ensure that the mounts are properly listed

Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-04-28 15:08:08 +07:00
Côme Chilliet 546d94c3ec
Fix file_get_content signatures to make it clear it can return false
In File::getContent, which must return a string, throw an Exception
 instead of returning false.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-04-27 09:56:05 +07:00
Robin Appelman d60172567f
Merge pull request #37818 from nextcloud/dav-ext-storage-log
debug log requests made by dav external storage/shares
2023-04-25 14:12:57 +07:00
Carl Schwan b1ec7ff51f
Add missing taint analysis docblock comments, and improve escaping in some methods
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-04-24 17:17:53 +07:00
Robin Appelman 05dc96f60d
debug log requests made by dav external storage/shares
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-04-24 17:13:20 +07:00
Robin Appelman 4953296b9e
Merge pull request #36857 from nextcloud/scan-repair-unencrypted-size
fix unencrypted_size for folders when scanning the filesystem with encryption enabled
2023-04-24 15:24:50 +07:00
Robin Appelman 0ac7230b7f
Merge pull request #37820 from nextcloud/parent-storage-mtime-ignore-error
ignore errors while trying to update parent storage_mtime
2023-04-21 19:11:27 +07:00
Robin Appelman 4cc5885615
Merge pull request #37062 from nextcloud/free-space
Check free space only if source exists and is dir
2023-04-21 13:55:42 +07:00
Robin Appelman 4b52dafbf9
ignore errors while trying to update parent storage_mtime
in the worst case this should only cause an extra rescan later

Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-04-20 17:16:03 +07:00
Côme Chilliet b294edad80
Merge branch 'master' into enh/type-iconfig-getter-calls
Signed-off-by: Côme Chilliet <91878298+come-nc@users.noreply.github.com>
2023-04-20 16:52:38 +07:00
Simon L 855e7a2efb
Merge pull request #36774 from nextcloud/bugfix/noid/sabre-nodes
fix: always use proper path on node api when calling the view
2023-04-18 04:11:44 +07:00
Simon L 45a0fe490c
Merge pull request #37534 from Rsplwe/master
Adjust the value of the "max-parts" parameter of the object storage 'ListPart' interface to 1000
2023-04-18 00:16:38 +07:00
Julius Härtl 160bd75d0a fix: Use proper path when creating node instances
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-04-17 23:46:52 +07:00
Simon L 85c9e75f33
Merge pull request #32314 from nextcloud/object-mkdir-logging
additional logging when mkdir fails for object storage
2023-04-17 23:42:08 +07:00
Thomas Citharel 036cd47bf4 Put Mimeloader insertion and read in the same transaction
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2023-04-17 13:32:02 +07:00
Julius Härtl eecd4601ac
Merge pull request #37429 from nextcloud/object-store-rmdir
improve objectstore rmdir handling
2023-04-13 18:45:12 +07:00
Arthur Schiwon ec1acb92c7
Merge pull request #37617 from nextcloud/notify-self-test-error
handle not being able to write file for notify self-test
2023-04-11 19:43:41 +07:00
Vincent Petry 9f05eff3ef
Merge pull request #34607 from nextcloud/encryption-size-not-found
fix encryption wrapper filesize for non existing files
2023-04-06 18:04:44 +07:00
Robin Appelman 570b64aafc
handle not being able to write file for notify self-test
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-04-06 11:52:22 +07:00
Robin Appelman 03e965a513
Merge pull request #22943 from nextcloud/scanner-no-access-handling
improve handling of files we can't access in the scanner
2023-04-05 21:36:21 +07:00
Robin Appelman c6be96d04f
additional logging when mkdir fails for object storage
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-04-05 14:52:19 +07:00
Robin Appelman b1f352c614
improve handling of files we can't access in the scanner
instead of erroring, remove the items from the cache.

this situation can be triggered if a user has access to a file but looses it afterwards

Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-04-05 14:44:55 +07:00
Robin Appelman 54f61352f0
better error messages if the users home is not writable during scanning
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-04-05 13:21:30 +07:00
Côme Chilliet 426c0341ff
Use typed version of IConfig::getSystemValue as much as possible
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-04-05 12:50:08 +07:00
Côme Chilliet 8f550398c4
Merge pull request #36836 from nextcloud/fix/view-type-cleanup
Tidy up typing in OC\Files\View
2023-04-05 10:14:55 +07:00
Côme Chilliet 6633b4ced6
Remove unecessary fully qualified namespaces from phpdoc
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-04-05 09:13:39 +07:00
Robin Appelman 5267a74027
fix type hints
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-04-04 17:05:45 +07:00
Robin Appelman 8c9197d65e
fix unencrypted folder size when no children with unencrypted size set are left
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-04-04 16:48:11 +07:00
Robin Appelman 649bed5154
fix unencrypted_size for files when scanning
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-04-04 16:48:11 +07:00
Robin Appelman 63fb33538c
fix unencrypted_size for folders when scanning the filesystem with encryption enabled
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-04-04 16:48:10 +07:00
Robin Appelman 15a6920b07
fix encryption wrapper filesize for non existing files
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-04-04 16:21:17 +07:00
Robin Appelman d63fa2d991
improve objectstore rmdir handling
remove folder entries as they are cleared instead of in one go afterwards

otherwise they stick around if some of the child entries can't be removed

Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-04-03 18:28:29 +07:00
Robin Appelman 5024f295dc
Merge pull request #36097 from nextcloud/path-prefix-optimize
extend path-prefix optimizer to remove all cases of path_hash= when encountering a path prefix filter
2023-04-03 16:39:49 +07:00
Rsplwe 5c6f35832c
Update lib/private/Files/ObjectStore/S3.php
Co-authored-by: Côme Chilliet <91878298+come-nc@users.noreply.github.com>
Signed-off-by: Rsplwe <i@rsplwe.com>
2023-04-03 21:59:59 +07:00
Côme Chilliet 5ad045619c
View needs to return an instance of OC\Files\FileInfo explicitely
Applications are calling methods from the class which are not from the
 public interface, and which cannot be added easily to public interface
 because Node interface extends FileInfo.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-04-03 10:52:35 +07:00
Côme Chilliet 0b3dad895f
More type cleanup in View and FileInfo
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-04-03 10:52:35 +07:00
Côme Chilliet ea05544213
Fix return type of methods returning false on error
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-04-03 10:52:34 +07:00
Côme Chilliet f974281ac9
Improve typing for fopen/toTmpFile
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-04-03 10:52:34 +07:00
Côme Chilliet 4393b96542
Remove unused method getLocalFolder
It’s not used and not in any OCP interface/class.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-04-03 10:52:34 +07:00
Côme Chilliet 966a3e6963
Tidy up typing in OC\Files\View
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-04-03 10:52:33 +07:00
jld3103 dcf6ebebab
Fix inherited parameter names
Signed-off-by: jld3103 <jld3103yt@gmail.com>
2023-04-03 08:29:33 +07:00
Robin Appelman c9e4e30523 clear encrypted flag when moving away from encrypted storage
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-04-01 15:36:37 +07:00
Rsplwe d85e623916
s3: get remaining truncation part
Signed-off-by: Rsplwe <i@rsplwe.com>
2023-04-01 22:56:15 +07:00
Rsplwe ccac296821
Adjust the value of 'maxparts' to 1000
Signed-off-by: Rsplwe <i@rsplwe.com>
2023-04-01 21:20:52 +07:00
Côme Chilliet 8104d9f5d8
Remove useless coalescing operator on non-null return value
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-04-01 14:20:26 +07:00
Côme Chilliet da618c457a
Fix quota typing for 32bits after forward port from 25
Signed-off-by: Côme Chilliet <91878298+come-nc@users.noreply.github.com>
2023-04-01 14:20:25 +07:00
Côme Chilliet 3f84d41226
Silence a warning from psalm with explanation
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-04-01 14:20:25 +07:00
Côme Chilliet 1740311283
Adapt types of subclasses
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-04-01 14:20:24 +07:00
Côme Chilliet ed863fb47c
Make it clear that file sizes may be float on 32bits
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-04-01 14:20:24 +07:00
Vincent Petry c6b683342e
Remove quota value type for 32-bit systems
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2023-04-01 14:20:20 +07:00
Robin Appelman 36835b7fec
Merge pull request #36810 from nextcloud/setup-user-onetime-before-mounts
do onetime user setup before getting any mount from providers
2023-03-24 16:45:08 +07:00
Côme Chilliet c60182065f
Merge pull request #34773 from nextcloud/artonge/feat/dispatch_entry_removed_event_for_all_entries
Dispatch event for all removed entries
2023-03-21 11:42:18 +07:00
Côme Chilliet 9c3e06c046
Merge pull request #33061 from ibpl/master-IB#1121253
Paths added to messages and message cleanup
2023-03-14 17:28:22 +07:00
Arthur Schiwon 315510df84
Merge pull request #27034 from nextcloud/enh/s3-multipart-upload-api
Use MultipartUpload for uploading chunks to s3
2023-03-09 13:55:57 +07:00
Arthur Schiwon 61aa0978ae
Merge pull request #36609 from nextcloud/lazyuserfolder-mountpoint
optimize LazyUserFolder::getMountPoint
2023-03-09 09:46:34 +07:00
Julius Härtl e23aa8883e
feat(s3): Use multipart upload for chunked uploading
This allows to stream file chunks directly to S3 during upload.

Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-03-08 14:00:04 +07:00
Joas Schilling 6b0cef6b9a Add transaction around mass mounts operations
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-03-07 19:58:55 +07:00
Git'Fellow 28231ae515
Add function_exists() check
Co-authored-by: Simon L. <szaimen@e.mail.de>
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2023-03-07 17:09:24 +07:00
Git'Fellow 9ac065fb92
Fix free space problems
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2023-03-07 00:13:57 +07:00
Julius Härtl d515da502f fix: Use proper path for quota fetching
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-03-06 22:46:07 +07:00
Robin Appelman fb1095f0f6
do onetime user setup before getting any mount from providers
this fixes a race condition where wrappers weren't properly applied if when a mount provider creates the storage instance one mountpoint creation instead of lazily

Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-02-22 18:03:38 +07:00
Robin Appelman d6818ba894
optimize LazyUserFolder::getMountPoint
no need to do a full setup

Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-02-13 15:13:50 +07:00
Robin Appelman 936f634069
Merge pull request #36643 from nextcloud/fs-setup-instrimuntion
more filesystem setup performance instrumentation
2023-02-13 14:37:57 +07:00
Robin Appelman 91d5f6a826 more filesystem setup performance instrumentation
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-02-10 11:11:13 +07:00
Julius Härtl d9cd8b1d37
Merge pull request #36610 from nextcloud/folder-lazy-submounts 2023-02-10 09:09:08 +07:00
Robin Appelman 5bcf37b7ff only fetch the data for mounts inside a folder when needed
for most operations we don't actually care about any mounts inside a folder, only for metadata that needs to propagate across storage boundaries (size, etag, mtime) do we need all the submount info.

By only loading this data when needed we can save a bunch of storage setup in a number of cases

Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-02-09 11:39:00 +07:00
Julius Härtl 08802ad13f
Merge pull request #36566 from nextcloud/mount-find-by-numeric-id 2023-02-08 20:04:57 +07:00
Robin Appelman 9f3dbb699a fix tests
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-02-07 15:50:10 +07:00
Côme Chilliet 308fcf4526
Respect OCP interface in private classes
Because the parameter type was moved to phpdoc it needs to be removed
 from implementations

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-02-07 11:23:35 +07:00
Côme Chilliet 028c225d96
Fix psalm errors
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-02-07 11:23:32 +07:00
Côme Chilliet cd885b5705
Type sizes as int|float throughout the code base
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-02-07 11:23:31 +07:00
Côme Chilliet 5c1a0e0307
Allow float sizes in FileInfo for 32bits
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-02-07 11:23:31 +07:00
Côme Chilliet d9dbed9105
Fix psalm errors related to filesizes
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-02-07 11:23:29 +07:00
Côme Chilliet ff776a90b1
Strong type filesize related methods to ease 32bits problem findings
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-02-07 11:23:28 +07:00
Côme Chilliet e156f8339c
Revert "remove 32-bit workarounds"
This reverts commit dd8774389e.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-02-07 11:23:28 +07:00
Robin Appelman e3bafcc7a8 cache numeric id in mountpoint
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-02-06 18:20:08 +07:00