Commit graph

377 commits

Author SHA1 Message Date
Robin Appelman
9126cdc7a8 cleanup shared lock if changing to exclusive lock failed
Signed-off-by: Robin Appelman <robin@icewind.nl>
2019-01-22 15:14:34 +00:00
Roeland Jago Douma
4c88cef749 Only execute query in propagateChange once
The second execute statement should be inside the if block. Else it gets
executed twice which makes no sense.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-12-05 20:45:50 +00:00
Robin Appelman
5261edb61a
forward object not found error in swift as dav 404
Signed-off-by: Robin Appelman <robin@icewind.nl>
2018-11-19 11:37:12 +01:00
Roeland Jago Douma
b89996483d
Merge pull request #12376 from nextcloud/backport/12284/stable13
[13] Properly search the root of a shared external storage
2018-11-13 15:59:01 +01:00
Morris Jobke
0737a6fbe4
Fix UniqueConstraintViolationException while insert into oc_filecache
* fixes #6160 by not being prone to the race condition in insertIfNotExists
* fixes #12228 by not using a query that can result in a deadlock
* replaces the insertIfNotExists call with an insert which is wrapped into a try-catch block

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-11-13 14:05:13 +01:00
Roeland Jago Douma
8b03bf7d5a
Properly search the root of a shared external storage
Fixes #1020

When an external storage is shared with you in full the root is ''
(empty). This adds an extra check for an empty jail basically.

Because if the jail is on the empty string. It matches all paths.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-11-09 13:23:52 +01:00
Roeland Jago Douma
d8a581e426 Actually return the root folder when traversing up the tree
If you now keep calling $node->getParent() you will at some point get
the RootFolder back. This is a nice termination check and will prevent
endless loops if an exit condition is slightly off.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-10-26 08:36:21 +02:00
Robin Appelman
e3b9e9e57c
tokens can't be valid local user names
this saves searching for shares on non-public link dav requests

Signed-off-by: Robin Appelman <robin@icewind.nl>
2018-08-27 16:25:49 +02:00
Robin Appelman
c897e2af8e
more efficient way to detect added and removed mounts
Signed-off-by: Robin Appelman <robin@icewind.nl>
2018-08-27 16:25:42 +02:00
Robin Appelman
f199e7ed17
cache OC\Files\Mount\Manager::findIn results
Signed-off-by: Robin Appelman <robin@icewind.nl>
2018-08-27 16:25:37 +02:00
Robin Appelman
65c8fd3b29
cache OC\Files\Mount\Manager::findIn results
Signed-off-by: Robin Appelman <robin@icewind.nl>
2018-08-27 16:23:01 +02:00
Robin Appelman
bb092553ef
use more efficient method to find mountpoint for path
Signed-off-by: Robin Appelman <robin@icewind.nl>
2018-08-27 16:21:20 +02:00
Robin Appelman
67ae310693
remove double loop for detecting changed mounts
Signed-off-by: Robin Appelman <robin@icewind.nl>
2018-08-27 16:19:50 +02:00
Morris Jobke
391e693adf
Use the path_hash instead of the path to query the filecache
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-08-20 14:22:52 +02:00
blizzz
c938ea6569
Merge pull request #10620 from nextcloud/mimetype-insert-if-not-exists-13
[13] use insertIfNotExists to store new mimetypes.
2018-08-13 23:16:00 +02:00
Robin Appelman
706813ab08
use insertIfNotExists to store new mimetypes.
Also throw an error if we can't find the mimetype after insert

Signed-off-by: Robin Appelman <robin@icewind.nl>
2018-08-09 15:31:47 +02:00
Bjoern Schiessle
be172cc6f2
make file cache updates more robust
only update the encrypted version after the write operation is finished and the stream is closed

Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
2018-08-08 10:46:14 +02:00
Robin Appelman
8aeafc63a1
Do scan the root storage in background scan
Signed-off-by: Robin Appelman <robin@icewind.nl>
2018-07-24 15:45:51 +02:00
Roeland Jago Douma
d03b389b56
Request a valid property for DAV opendir
Apperently Sabre and Onedrive are not friends when requesting a single
404 property. I need to dig deeper on why this is. Anyways requesting a
valid property makes it work like a charm.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-07-09 16:07:04 +02:00
Morris Jobke
83d99449d0
Merge pull request #10121 from nextcloud/stable13-allow-disable-encryption
[stable13] allow to disable encryption
2018-07-09 14:46:06 +02:00
Bjoern Schiessle
3a45bb52bc
allow to disable encryption
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
2018-07-05 17:24:09 +02:00
Morris Jobke
6a4a7c868c
Fix undefined variable - found by Phan
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-05-29 15:12:10 +02:00
Robin Appelman
874e312980
cleanup locks in scanner on error
Signed-off-by: Robin Appelman <robin@icewind.nl>
2018-05-23 20:05:54 +02:00
Morris Jobke
7bf713edaf
Merge pull request #9389 from nextcloud/log-lock-state-on-conflict-13
[13] Log lock state on conflict
2018-05-07 16:29:42 +02:00
Robin Appelman
a6ea5eb1b5
remove unneeded locks in getCacheEntry
Signed-off-by: Robin Appelman <robin@icewind.nl>
2018-05-04 15:06:39 +02:00
Robin Appelman
bc1a17a9e2
always log locking errors
Signed-off-by: Robin Appelman <robin@icewind.nl>
2018-05-04 13:35:26 +02:00
Morris Jobke
bb656750f5
Add more logging for the object storage during creation of the buckets
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-04-05 17:29:44 +02:00
Roeland Jago Douma
5a74b9cb99
Fix proper permissions for multiple file access
Fixes #8890

In case you have access to a file via multiple ways, for example:
1. the file is shared with you with permission read only
2. the folder containing the file is shared with your read/write

Requesting the getById function on the userFolder would give back two
entries but both with the same permissions. Depending on the node you
picked this is not right.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-04-04 12:02:37 +02:00
Bjoern Schiessle
d4f64b94f2
reset encryptionVersion to '1' if a file was stream copied, because this means that we basically write the file from scratch
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
2018-04-03 18:12:16 +02:00
Robin Appelman
a95ccf4248
disable part files for object stores
Signed-off-by: Robin Appelman <robin@icewind.nl>
2018-03-08 13:09:02 +01:00
Roeland Jago Douma
9413f97b92
Hardening of SimpleFile getContent
if file_get_contents fails remove the file. And traverse up the tree
checking if the other folders are there.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-03-02 21:23:41 +01:00
Morris Jobke
197c97e242
Merge pull request #8102 from nextcloud/s3-uploader-13
[13] Use S3Client::upload instead of splitting single/multipart upload ourselves
2018-02-08 14:31:23 +01:00
Robin Appelman
6296c498b2
actually return stream from swift
Signed-off-by: Robin Appelman <robin@icewind.nl>
2018-02-08 08:10:08 +01:00
Roeland Jago Douma
b88aeb2166
Do not try to get the jailed path if we can't find the id
Fixes #8047

If we can't find the file by id there we should just return null instead
of trying to get the jailed path of null.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-02-05 12:42:47 +01:00
Robin Appelman
7ab3a7e2c3
Use S3Client::upload instead of splitting single/multipart upload ourselves
Signed-off-by: Robin Appelman <robin@icewind.nl>
2018-01-29 16:11:05 +01:00
Robin Appelman
3a1390fdb7
Support arbitrary number of arguments for d:or and d:and in search queries
Signed-off-by: Robin Appelman <robin@icewind.nl>
2018-01-16 13:27:52 +01:00
Robin Appelman
34ced4dd97
add option to use legacy v2 auth with s3
Signed-off-by: Robin Appelman <robin@icewind.nl>
2017-12-19 11:54:55 +01:00
Morris Jobke
d2d73f1ce8
Also replace all other occurences
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-12-18 20:57:11 +01:00
Robin Appelman
4f0d03e172
additional debug logging on smb copy/rename failures
Signed-off-by: Robin Appelman <robin@icewind.nl>
2017-12-18 13:59:58 +01:00
Robin Appelman
05d2f61a59
handle not found mounts when cleaning avatars
Signed-off-by: Robin Appelman <robin@icewind.nl>
2017-12-11 16:56:10 +01:00
Roeland Jago Douma
e47137c7d4
Merge pull request #6682 from nextcloud/dav-mimetype-fallback
Fallback to filename based detection if the remote dav server doesn't…
2017-12-11 15:28:05 +01:00
Morris Jobke
c32cb6b4b7
Merge pull request #7385 from nextcloud/shared-delay-root
delay calculating the shared cache root until it's used
2017-12-06 15:14:48 +01:00
Robin Appelman
046eb0c635
add retry wrapper when reading files from swift
Signed-off-by: Robin Appelman <robin@icewind.nl>
2017-12-04 16:34:53 +01:00
Robin Appelman
c87d689253
delay calculating the shared cache root until it's used
Signed-off-by: Robin Appelman <robin@icewind.nl>
2017-12-04 15:16:39 +01:00
Morris Jobke
be4e921306
Use basename() instead of self implementation
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-11-23 12:35:47 +01:00
Morris Jobke
106d932e8f
Merge pull request #7137 from nextcloud/shared-jailed-source-root
Use the correct root for shared jail when the source storage is also a jail
2017-11-23 12:03:36 +01:00
Bjoern Schiessle
1ade6b0817
only create the file cache entry after the empty file was created successfully, otherwise file_exists() call on the initial file_put_content() will indicate that the file already exists
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
2017-11-17 12:45:46 +01:00
Björn Schießle
c225bbd021
Merge pull request #7113 from nextcloud/s3-download-stream-fix
Fix s3 download and touch
2017-11-14 20:38:50 +01:00
Robin Appelman
56fd462718
Use the correct root for shared jail when the source storage is also a jail
Signed-off-by: Robin Appelman <robin@icewind.nl>
2017-11-10 17:03:27 +01:00
Morris Jobke
5d8421135e
Merge pull request #7014 from nextcloud/rename-locks
Unlock files even if an exception occurs while renaming
2017-11-09 09:47:36 +01:00