Commit graph

253 commits

Author SHA1 Message Date
Robin Appelman
b1ee1b80d4 fix: detect deleted items as updated for smb storage
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-01-30 14:27:31 +00:00
Robin Appelman
f92de57ba0 fix: smb: don't fail hard if we can't load acls for a file
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-12-04 17:23:34 +00:00
Josh Richards
1fc1543a8b
fix: Clean-up some remaining readdir calls with undesirable false evaluation potential
Signed-off-by: Josh Richards <josh.t.richards@gmail.com>
2024-11-13 09:11:17 +05:30
Marcel Klehr
3b29a3959e 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 07:37:40 +00:00
Git'Fellow
8a7cd1aefb fix(files_external): Check key exists before accessing it
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2024-09-14 16:57:21 +00: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
Andy Scherzinger
c1555fc33e
chore: Add SPDX header
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2024-06-06 18:05:37 +02:00
Côme Chilliet
4d060818d1
fix(files_external): Be extra safe with null handling to please psalm
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-04-30 09:24:00 +02:00
Côme Chilliet
72a0da6d4e fix: Fix small psalm errors in FTP and LDAP connections
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-04-09 10:01:47 +02:00
Côme Chilliet
0f348516d2 fix: Remove obsolete resource typing
In PHP>=8.1, LDAP and FTP resources are always typed objects

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-04-09 10:01:47 +02:00
Côme Chilliet
ec5133b739 fix: Apply new coding standard to all files
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-04-02 14:16:21 +02:00
John Molakvoæ
524ed97d62
fix: replace Account name by Login
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2024-02-13 21:08:10 +01:00
Vincent Petry
839ddaa354
feat: rename users to account or person
Replace translated text in most locations

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2024-02-13 21:06:30 +01:00
Benjamin Gaussorgues
2cb0bf5437
fix(files_external): list root when using SMB case-insensitive option
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2024-02-05 11:24:12 +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
Benjamin Gaussorgues
c52d5e418a
Merge pull request #41053 from nextcloud/bug/smb/in-place-case-rename
fix(files_external): on case insensitive system, block case change
2023-10-31 16:07:29 +01:00
Louis Chemineau
e66e8bad1a
Return correct status if touch failed
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-10-23 15:26:43 +02:00
Benjamin Gaussorgues
a45e12abc8
fix(files_external): on case insensitive system, block case change
When a file/directory is renamed to the same name with only case change,
the rename fail. We block this kind of rename.
The user will have to rename to another name first.

Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2023-10-23 10:32:28 +02:00
Robin Appelman
eab8dd3ca0 use multipart copy for s3
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-09-20 17:28:48 +02:00
Robin Appelman
d42d809170 sftp psalm fixes
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-09-18 16:12:03 +02:00
Robin Appelman
c264903cb9
psalm suppress
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-09-04 16:30:12 +02:00
Robin Appelman
aa2a3ae6c8
implement fseek for sftp read stream
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-09-04 16:30:11 +02:00
Robin Appelman
b41c8e0ef5
more optimized getPermissions/getMetaData
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-09-04 16:30:10 +02:00
Robin Appelman
1dfef9fccf
sftp optimize file_put_contents, writeStream and copy
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-09-04 16:30:10 +02:00
Robin Appelman
9cf732a90b
fix error during sftp stream close
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-09-04 16:30:09 +02:00
Robin Appelman
19daa70947
clear sftp stat cache when opening a write stream
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-09-04 16:30:07 +02:00
Benjamin Gaussorgues
9b03dc52a4
Migrate files external to PSR LoggerInterface
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2023-08-01 09:44:57 +02:00
Robin Appelman
7c9edbff32
handle more exceptions in AmazonS3::fopen
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-07-13 15:37:42 +02:00
Simon L
83faba5e61
Merge pull request #38591 from nextcloud/fix/caching/avoid-haskey-get
fix(caching): Avoid checking existence before fetching
2023-06-12 13:53:37 +02:00
Christoph Wurst
b8c61b3515 fix(caching): Avoid checking existence before fetching
The cache might expire between checking for key existence and fetching
the value. In this rare case the code continues with a null value when
it doesn't expect one.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-06-12 09:44:48 +02:00
Faraz Samapoor
94f2f57519
Update apps/files_external/lib/Lib/Storage/SMB.php
Co-authored-by: Côme Chilliet <91878298+come-nc@users.noreply.github.com>
Signed-off-by: Faraz Samapoor <f.samapoor@gmail.com>
2023-06-05 16:21:14 +03:30
Faraz Samapoor
cfb921b26c Refactors "strpos" calls in /apps/files_external to improve code readability.
Signed-off-by: Faraz Samapoor <f.samapoor@gmail.com>
2023-06-02 19:54:49 +03:30
James Guo
bb173e092b
Update AmazonS3.php
Signed-off-by: James Guo <i@ze3kr.com>
2023-04-06 14:34:08 +08: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 +02:00
Robin Appelman
fd0ef588b4
fix ftp external storage with filezilla server
- filezilla doesn't like "" as parameter for `mdtm` (all others seem fine)
- filezilla sends fractional modified date

Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-03-30 17:44:47 +02: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 +01: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 +01:00
François Ménabé
710f3fd405 Support of s3 storage class in External Storage application
Signed-off-by: François Ménabé <francois.menabe@gmail.com>
2023-01-12 14:59:13 +01:00
Côme Chilliet
9430899f16
Fix psalm issues related to signature changes from PHP 8.0
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-12-29 12:36:34 +01:00
Robin Appelman
ed8fedc685
fix s3 directory copy
Signed-off-by: Robin Appelman <robin@icewind.nl>
2022-11-15 17:17:59 +01:00
Côme Chilliet
9ba9f9a7dc
Make sure to not pass null to DateTime::createFromFormat
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-11-14 16:23:50 +01:00
Carl Schwan
a5ea677370 Rename file1 and file2 to source and target in Storage abstraction
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-10-18 17:21:47 +02:00
Carl Schwan
732badf552 Additional type hinting found by psalm
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-10-18 12:28:34 +02:00
Carl Schwan
c2c63a551f Fix usage of streams
always return a bool and type the handle as a string

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-10-17 10:58:27 +02:00
Carl Schwan
74e6976779 Use argument name from parent class
This will be an issue with php 8, so best to fix it now

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-10-17 10:58:27 +02:00
Carl Schwan
cf1381a6f9 Port away from deprecated clearBucket call
This was removed a long time ago in the library that we use, but never
detected since this was inside a try catch block...

Remove the call for now and we should investigate newer api in the
future.

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-10-16 23:39:49 +02:00
Carl Schwan
1d90f84141 Port to LoggerInterface
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-10-16 23:39:28 +02:00
Carl Schwan
ff4c8e9bee Force cast getCode to int
Otherwise psalm complains that the type can also be a non-falsy-string

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-10-16 23:38:31 +02:00
Matthieu Gallien
54c05bcdb9 handle AccessDenied error when checking if external s3 support versions
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2022-07-28 09:20:12 +00:00