390 Commits

Author SHA1 Message Date
Git'Fellow
49aecab074 fix(sftp): Handle empty port parameter to allow host-defined ports
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2026-02-16 09:14:17 +00:00
pac0san
9dc7eb116c fix(files_external): Respect explicit port configuration
It allows the use of the alternative SFTP port defined in the GUI (external storage), instead of the default port (22).

Signed-off-by: pac0san <7056343+pac0san@users.noreply.github.com>
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-02-02 12:58:29 +00:00
Robin Appelman
f5b9dbdb51 fix: make smb auth failure on forbidden exception more reliable
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-18 17:06:11 +01:00
Robin Appelman
03288bcd0d fix: handle InvalidArumentException as availability failure in smb->getFileInfo
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-18 17:06:11 +01:00
Edward Ly
aaf2d214c5 fix(s3): rename 'Amazon S3' to 'S3 Storage'
The current name may be confusing to users who take advantage of other S3-compatible storage solutions not offered by Amazon, so a more generic name is preferred here.

Signed-off-by: Edward Ly <contact@edward.ly>
2025-12-02 17:21:25 +00:00
Kent Delante
82f9a1b64e fix: pass only necessary information when deleting mulitple objects
DeleteObjects currently fails when the request includes all the
information returned by ListObjects. Send only the necessary
information in the request. Note: 'Size' and 'DateModified' is now
only supported by directory buckets.

Signed-off-by: Kent Delante <kent.delante@proton.me>
2025-11-18 08:48:57 +00:00
Josh
af53e9ca06 chore(files_external): Remove oauth1 constant
Signed-off-by: Josh <josh.t.richards@gmail.com>
2025-08-07 22:25:51 -04:00
Josh
57c62e1ca1 refactor(files_external): Drop OAuth1.php
Signed-off-by: Josh <josh.t.richards@gmail.com>
2025-08-07 21:54:33 -04:00
Robin Appelman
6f0120af16 fix: handle smb timeouts as storage not available
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-08-05 17:39:12 +02:00
Arthur Schiwon
80f891eee0 style(PHP): code cleanup, no effective changes
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2025-07-10 23:21:16 +02:00
Arthur Schiwon
fd799afc17 fix(Krb): switch away from deprecated and broken KerberosApacheAuth()
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2025-07-10 23:21:16 +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
4242520d64 feat: improve logging of fopen failures for smb
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-06-10 15:14:04 +02:00
Robin Appelman
f97495bf5a feat: add command to check files_external dependencies
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-05-13 09:46:19 +02:00
Git'Fellow
2d68644e11 fix(files_external): Safely check if the timestamp is numeric
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2025-05-08 11:46:52 +02:00
provokateurin
db5f6a4e96 fix(files_external): Mark password fields for LoginCredentials and SessionCredentials as hidden and optional
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-05-05 13:19:48 +02:00
provokateurin
01d2a9f76a fix(files_external): Convert VALUE_HIDDEN to FLAG_HIDDEN to allow combining VALUE_PASSWORD and FLAG_HIDDEN
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-05-05 13:19:43 +02:00
provokateurin
e9e67cbc50 fix(files_external): Stop building path twice when checking if file exists on case insensitive SMB storage
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-03-10 09:52:32 +01:00
provokateurin
59ae85339e fix(files_external): Move definition parameter to the correct place
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-02-25 13:10:22 +01:00
Côme Chilliet
64863c9d46 chore: Apply new rector configuration to apps folder
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-02-13 11:46:42 +01:00
Côme Chilliet
ed5b7ae161 chore: re-apply current rector configuration to apps folder
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-02-13 11:45:33 +01:00
Robin Appelman
1871296041 fix: don't believe sftp when it tells us the mtime is less than we know it is
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-02-05 20:50:19 +01:00
Christian Becker
c25c5bbc00 feat(S3): add SSE-C support in S3 External Storage
Just need to add the parameter and fix two calls. All other logic is already implemented and implicitly called through the S3ConnectionTrait

fixes #33283

Signed-off-by: Christian Becker <christian@dabecka.de>
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2025-01-28 22:57:59 +01:00
Robin Appelman
4179abdb81 fix: detect deleted items as updated for smb storage
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-01-21 17:56:46 +01:00
Robin Appelman
cc39714fb5 fix: smb: don't fail hard if we can't load acls for a file
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-11-14 16:01:36 +01:00
John Molakvoæ
d53fde8eef Merge pull request #49015 from nextcloud/fix/openapi/array-syntax 2024-11-06 08:56:30 +01:00
provokateurin
77114fb327 fix(OpenAPI): Adjust array syntax to avoid ambiguities
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-11-05 09:58:11 +01:00
Maxence Lange
8360c57189 fix(files-external): set password as sensitive
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2024-10-31 09:41:20 -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
provokateurin
381077028a refactor(apps): Use constructor property promotion when possible
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-10-21 12:37:59 +02:00
Côme Chilliet
1580c8612b chore(apps): Apply new rector configuration to autouse classes
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-10-15 10:40:25 +02:00
provokateurin
14e6734547 refactor(files_external): Add Storage parameter strong types
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-10-07 15:00:07 +02:00
Robin Appelman
103b464eea fix: use nc's binary finding logic for smb
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-10-04 15:56:31 +02:00
provokateurin
1302b48ca2 fix(files_external): Fix all IStorage return types
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-09-26 17:29:48 +02:00
Louis
c45ed55f95 Merge pull request #48359 from nextcloud/artonge/feat/compare_hashed_password_when_updating_global_cred_in_files_external
fix: Use placeholder for external storage password
2024-09-26 14:56:37 +02:00
Marcel Klehr
c8a90e941a fix(files_external): Catch correct exception
SMB#getFileInfo used to throw an icewind/smb exception, but nowadays throws \OCP\Files\ForbiddenException. This fixes downstream methods to catch the new exception.

Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2024-09-26 09:03:08 +02:00
Louis Chemineau
20eb464835 fix: Use hashed password in files_external settings
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-09-25 17:50:17 +02:00
Côme Chilliet
1a4978c4ea chore: Apply rector configuration to apps folder
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-09-20 17:51:00 +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
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
Git'Fellow
07a6fd11d0 fix(files_external): Check key exists before accessing it
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2024-09-14 11:21:17 +02:00
Josh
2480567005 Merge pull request #47526 from nextcloud/jtr/fix-ftp-custom-port-ui
fix(files_external): Handling in FTP UI for custom ports
2024-09-12 09:34:47 -04:00
Josh
56c744d263 Merge pull request #47527 from nextcloud/fix-sftp-custom-port-ui
fix(files_external): Handling in SFTP UI for custom ports
2024-09-12 09:34:32 -04:00
Daniel Calviño Sánchez
bd4de5208d fix: Fix unmodified placeholder replacing the actual value when updating
When updating global storages and user storages a property is not
updated by "StoragesService::updateStorage()" if the value matches the
unmodified placeholder. However, userglobal storages are not updated
through the "StoragesService"; as only the authentication mechanism is
updated it is directly done with "saveBackendOptions()" in
"IUserProvided" or "UserGlobalAuth". Due to this the unmodified
placeholder value needs to be explicitly checked in those cases and
replaced by the actual value (note that in this case it is not possible
to just skip updating a specific property).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2024-09-04 09:46:17 +02:00
Josh Richards
2e73932c8e fix: custom port handling in UI for SFTP
Signed-off-by: Josh Richards <josh.t.richards@gmail.com>
2024-08-27 09:01:12 -04:00
Josh
6db4099246 fix: custom port handling in UI for FTP External Storage
Signed-off-by: Josh <josh.t.richards@gmail.com>
2024-08-27 08:49:24 -04: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
Robin Appelman
c2b1f079b1 feat: add a specialized writeStream implementation for s3 external storage
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-07-24 17:37:20 +02:00
Daniel Calviño Sánchez
733e3f62fd fix: Do not log an error when connecting to SFTP without a logged in user
When connecting to a SFTP server from a SFTP storage the host key is
checked against the known host keys stored in a file in the data
directory of the logged in Nextcloud user. The path to the file is
(indirectly) got using "OC_App::getStorage", which logs an error if
called when there is no logged in user; this can happen, for example, if
the storage is used from a background job or a command.

Not being able to read or write the file just causes the host key check
to be skipped, but it has no other consequence. Moreover, even with
logged in users it is likely that the file can not be read either and
the check is also skipped, as the file needs to have been manually
created by an admin.

Due to all that now the path to the file is directly created using a
View rather than relying on "OC_App::getStorage" to prevent the unneeded
error from being logged.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2024-06-18 07:06:30 +02:00