Vincent Petry
a2a7a60293
Merge pull request #13301 from owncloud/drop-etag-message
...
drop useless "!!! No reuse of etag" - fixes #13187
2015-01-13 12:24:24 +01:00
Lukas Reschke
f0ac8a278a
Use json_encode on string
...
It's better to encode the string to prevent possible (yet unknown) bugs in combination with PHP's type juggling.
Previously the boolean statements evaluated to either an empty string (false) or a not empty one (true, then it was 1). Not it always evaluates to false or true.
This also removes a stray - that was not intended there but shouldn't have produced any bugs. Just to increase readability.
Thanks @nickvergessen for spotting.
Addresses https://github.com/owncloud/core/pull/13235/files#r22852319
2015-01-13 11:08:18 +01:00
Morris Jobke
9b49b52fc6
drop useless "!!! No reuse of etag" - fixes #13187
2015-01-13 09:54:48 +01:00
Vincent Petry
fcc3b3d5f7
Fix searchCommon to properly match path name
...
The internal path was matched without the last "/" which caused
"files_trashbin" to also match when the internal path was "files".
This adds the missing slash for the comparison.
2015-01-12 19:33:00 +01:00
Morris Jobke
c91d47e5b3
Merge pull request #13224 from owncloud/simplify-is-valid-path-and-add-unit-tests
...
Simplify isValidPath and add unit tests
2015-01-10 17:35:40 +01:00
Morris Jobke
8057bc6646
Merge pull request #13236 from owncloud/use-isset-for-performance
...
Use isset() instead of strlen()
2015-01-10 16:32:50 +01:00
Lukas Reschke
310424db5d
Use isset() instead of strlen()
...
Isset is a native language construct and thus A LOT faster than using strlen()
On my local machine this leads to a 1s performance gain for about 1 million paths. Considering that this function will be called a lot for every file operation this makes a noticable difference.
2015-01-10 12:06:51 +01:00
Lukas Reschke
7e11ca06f6
Cache results of `normalizePath`
...
`normalizePath` is a rather expensive operation and called multiple times for a single path for every file related operation.
In my development installation with about 9GB of data and 60k files this leads to a performance boost of 24% - in seconds that are 1.86s (!) - for simple searches. With more files the impact will be even more noticeable. Obviously this affects every operation that has in any regard something to do with using OC\Files\Filesystem.
Part of https://github.com/owncloud/core/issues/13221
2015-01-10 11:10:38 +01:00
Lukas Reschke
05615bfd47
Simplify isValidPath and add unit tests
...
The check for invalid paths is actually over-complicated and performed twice resulting in a performance penalty. Additionally, I decided to add unit-tests to that function.
Part of https://github.com/owncloud/core/issues/13221
2015-01-10 00:40:21 +01:00
Robin McCorkell
631d6571fd
Merge pull request #13181 from owncloud/filecache-preventleadingslash
...
Trim leading or trailing slashes in file cache paths
2015-01-09 13:54:17 +00:00
Morris Jobke
800738f51a
Merge pull request #12011 from owncloud/reuse-etag-default
...
Default to reusing etags in the scanner
2015-01-09 14:38:45 +01:00
Vincent Petry
888ce4d4f9
Fix cache jail to not duplicate slashes
2015-01-09 10:18:32 +01:00
Vincent Petry
aa821ecc00
Trim leading or trailing slashes in file cache paths
2015-01-08 19:43:02 +01:00
Morris Jobke
fd57820708
Merge pull request #13132 from aptivate/improve_debug_logging_messages
...
Improve debugging for ServiceUnavailable exceptions
2015-01-07 10:36:27 +01:00
Chris Wilson
402a3ed146
Improve debugging for ServiceUnavailable exceptions
...
I was getting a lot of these in my logs for no apparent reason, and file
uploads were failing:
{"app":"webdav","message":"Sabre\\DAV\\Exception\\ServiceUnavailable: ","level":4,"time":"2015-01-06T15:33:39+00:00"}
In order to debug it, I had to add unique messages to all the places where
this exception was thrown, to identify which one it was, and that made the
logs much more useful:
{"app":"webdav","message":"Sabre\\DAV\\Exception\\ServiceUnavailable: Encryption is disabled","level":4,"time":"2015-01-06T15:36:47+00:00"}
2015-01-06 15:59:38 +00:00
Jörn Friedrich Dreyer
c738359a11
add paged provider
2015-01-02 10:28:41 +01:00
Thomas Müller
81243b0f5d
adding getDirectDownload() to Wrapper
2014-12-28 17:17:14 +01:00
Thomas Müller
5b00bc1d6e
Adding basement for the direct download url
2014-12-28 17:17:14 +01:00
Bernhard Posselt
8e37214346
add an interface for the root folder so apps have an interface to deal with storage
...
fix comments and newline
add newline
2014-12-21 20:52:34 +01:00
Morris Jobke
75e8b39826
Merge pull request #12879 from owncloud/mountconfig
...
Add mount specific options
2014-12-18 23:38:14 +01:00
Robin Appelman
9ddd5033d4
Movable mountpoints are always deletable
2014-12-17 16:09:28 +01:00
Robin Appelman
fd85424742
Add getMountPoint to FileInfo
2014-12-17 14:03:50 +01:00
Robin Appelman
95a145f67f
Load mount specific options from the mount config
2014-12-17 14:03:50 +01:00
Vincent Petry
c6be491a89
Return file info from Node API
2014-12-15 12:10:54 +01:00
Morris Jobke
5b3971f002
Merge pull request #12639 from owncloud/bad_mtime_format
...
Fix formatting of bad dates from external storages
2014-12-13 10:07:10 +01:00
Robin McCorkell
fdbb68a3c3
Return ? if mtime is 0 or -1
...
Tooltip contains 'Unable to determine date'. Fixes #6395
2014-12-12 23:54:18 +00:00
Vincent Petry
4b57892c4e
Merge pull request #12778 from owncloud/searchbytags2
...
Added searchByTags to view, storage and cache
2014-12-12 14:27:19 +01:00
Vincent Petry
b1bef5cc15
Merge pull request #12587 from owncloud/dav-logerrors
...
Log exceptions in DAV storage
2014-12-12 11:58:04 +01:00
Vincent Petry
3878c3782f
Added searchByTag in cache jail wrapper
2014-12-12 11:48:42 +01:00
Vincent Petry
15ecb28d50
Make $userId mandatory for searchByTags
...
$userId is now a mandatory parameter for searchByTags.
Also fixed some places in the code where the argument was missing (Node
API and View)
2014-12-12 11:18:35 +01:00
Morris Jobke
e969fe6b12
Merge pull request #12698 from owncloud/handle_readonly_shared_files
...
Handle readonly shared files
2014-12-12 08:34:28 +01:00
Vincent Petry
25dde7e93b
Added searchByTags to view, storage and cache
2014-12-11 17:38:50 +01:00
Thomas Müller
80ae311329
Merge pull request #11892 from owncloud/remove_triggerupdate
...
Remove triggerupdate.php & add quiet option for CLI scanner
2014-12-10 16:17:29 +01:00
Vincent Petry
ebba54d490
Fix numeric storage id for cache wrapper
2014-12-10 13:05:31 +01:00
Jörn Friedrich Dreyer
0f17486c1d
make path absolute
2014-12-10 11:04:17 +01:00
Jörn Friedrich Dreyer
85176ec072
return correct result
2014-12-08 15:25:21 +01:00
Robin Appelman
f4701d7721
Add public api for mount configurations
2014-12-04 16:47:27 +01:00
Jörn Friedrich Dreyer
7ef6df04da
remove triggerupdate, ref #11872
2014-12-04 13:44:30 +01:00
Robin Appelman
672495a1a3
make \OC\Files\Node\Node implement the FileInfo interface
2014-12-04 13:27:08 +01:00
Vincent Petry
bc12d28f23
Log exceptions in DAV storage
...
In some cases a "NotFound" might be expected, so just return false as
before. But for other exceptions, the exception is now logged.
2014-12-03 22:20:00 +01:00
Robin Appelman
1bbb18fe87
also clear statcache in mapped local
2014-12-02 16:39:03 +01:00
Robin Appelman
db3f7238dd
Clear statcache before getting the mtime from local storage backends
2014-12-02 14:25:49 +01:00
Vincent Petry
8db4dd7585
Merge pull request #12469 from owncloud/issue/12460-port-local-changes2mapped
...
Issue/12460 port local changes2mapped
2014-12-01 10:42:39 +01:00
Vincent Petry
35ab770b11
Close cursor early in calculateFolderSize
...
This method triggers additional queries in $this->update() so to avoid
potential database locks or delays, we close the cursor as soon as it is not needed any more
2014-11-28 09:35:31 +01:00
Robin Appelman
05a069c101
Merge pull request #12426 from owncloud/jail-mask-wrappers
...
Add Jail and PermissionsMask storage wrappers
2014-11-27 16:00:14 +01:00
Robin Appelman
33b64868d7
Add storage and cache wrappers to apply a permissions mask to a storage
2014-11-27 15:25:57 +01:00
Robin Appelman
abb6e89c5d
Add storage and cache wrappers to jail a storage to a subfolder
2014-11-27 15:25:53 +01:00
Joas Schilling
7761f0288e
Also clearstatcache() in MappedLocal before using the stats
...
Local change 283c10f010
2014-11-27 14:59:10 +01:00
Joas Schilling
50f85bfd1f
Check whether file exists before trying to touch() it
...
Local changes from d069ee8a8b
and 258ad38fd3
2014-11-27 14:59:09 +01:00
Joas Schilling
c5427da76d
Check return of disk_free_space before returning it
...
Local changes copied from ed83597371
and 25370fcb82
2014-11-27 14:59:08 +01:00
Joas Schilling
1062f4fe44
Check file existance in MappedLocal in hasUpdated()
...
Only fixed in Local by eeee9eacea
2014-11-27 14:59:07 +01:00
Joas Schilling
b886d3d645
Make MappedLocal::isLocal() true like for Local
...
Missed in 788c8540aa
2014-11-27 14:59:07 +01:00
Joas Schilling
4f1bbc4fd5
Remove unused 2nd parameter of buildPath() and rename to getSourcePath()
2014-11-27 11:19:20 +01:00
Joas Schilling
20237fba47
Introduce getSourcePath() in Storage\Local to reduce the difference to MappedLocal
2014-11-27 11:19:18 +01:00
Joas Schilling
2c39aec8cb
Replace deprecated constant with new class constant
2014-11-25 16:30:21 +01:00
Joas Schilling
bb540722cd
Use base class to reset the file mapper
2014-11-19 14:52:07 +01:00
Lukas Reschke
6535540dcd
Check if the size field is available
...
In some cases the 'size' field is not available resulting in some PHP errors such as:
```json
{"reqId":"03548fd9e3d3aca15a5796b3b35d7b9d","remoteAddr":"::1","app":"PHP","message":"Undefined index: size at \/Users\/lreschke\/Programming\/core\/lib\/private\/files\/fileinfo.php#125","level":3,"time":"2014-11-17T21:38:57+00:00"}
```
This can be experienced when creating a new empty file and deleting it right away, then when going to the trash bin this error is thrown.
2014-11-17 22:39:40 +01:00
Morris Jobke
146cb920c9
Merge pull request #12218 from owncloud/issue/10991-fixes
...
Issue/10991 Make unit tests pass on windows
2014-11-17 16:44:45 +01:00
Joas Schilling
0ab973a3a6
Make it possible to cleanPath() absolute Windows paths
2014-11-17 10:48:15 +01:00
Lukas Reschke
da31177a8f
Remove debug statement
...
Either we throw an exception or we ignore it. But we should certainly not print this to the end-user...
2014-11-12 11:32:48 +01:00
Vincent Petry
4b943a4810
Fix root path handling for WebDAV ext storage
...
Added missing cleanPath() call that converts "/" to "" when calling
SabreDAV. This is needed because SabreDAV will discard its base URL when
passing "/".
2014-11-11 15:20:36 +01:00
Bjoern Schiessle
f27b6b0ab8
don't scan part files
2014-11-07 15:20:51 +01:00
Robin Appelman
d26a427f92
Also propagate etag changes when the watcher finds a changed file
2014-11-07 12:56:09 +01:00
Robin Appelman
16b0d52031
Default to reusing etags in the scanner
2014-11-06 18:34:10 +01:00
Vincent Petry
55658e7bb2
Merge pull request #11539 from owncloud/mount-setup-once
...
Only mount the storages for the user once
2014-10-31 10:42:29 +01:00
Vincent Petry
106b9eb55c
Merge pull request #11409 from owncloud/watcher-reuse
...
Pass the cached data to the filesystem watcher
2014-10-29 16:38:16 +01:00
Robin Appelman
2974d4d380
Reset the users setup after clearing mounts
2014-10-28 15:13:29 +01:00
Robin Appelman
3f63f4b6b1
Only mount the storages for the user once
2014-10-27 18:50:28 +01:00
Robin Appelman
8de287f2ef
Merge pull request #11763 from owncloud/stable-etags
...
Generate stable etags for local files
2014-10-27 15:30:30 +01:00
Robin Appelman
283c10f010
Generate stable etags for local files
2014-10-24 16:47:58 +02:00
Lukas Reschke
b3a04840b5
Add type hinting to functions
...
It's only reasonable to have proper type hinting here which might even help us to catch bugs.
2014-10-24 14:13:40 +02:00
Robin Appelman
16cfca6a5f
Better reuse of cache data for getFolderContents
2014-10-24 12:33:54 +02:00
Robin Appelman
0a3f57f832
Pass the cached data to the filesystem watcher
2014-10-24 12:32:55 +02:00
Jörn Friedrich Dreyer
ca0e3fdfea
throw exception in writeBack, the returned boolean is checked nowhere
2014-10-20 11:29:05 +02:00
Jörn Friedrich Dreyer
9b0f0df7f5
make skeleton compatible with objectstore
...
suspend encryption proxy when copying skeleton
2014-10-20 11:28:36 +02:00
Jörn Friedrich Dreyer
0254a3c406
make trashbin compatible with objectstore, replace glob with search in cache, make unknown free space work like unlimited free space
2014-10-16 10:15:43 +02:00
Vincent Petry
4650101674
Merge pull request #11548 from owncloud/extstorage-ocfields
...
Allow specifying protocol in ext storage OC config
2014-10-15 13:27:23 +02:00
Vincent Petry
ab5149f5df
Allow specifying protocol in ext storage OC config
...
Allow specifying a protocol in the host field when mounting another
ownCloud instance. Note that this was already possible with the WebDAV
config but this bug made it inconsistent.
2014-10-13 17:15:58 +02:00
Vincent Petry
d485c0098d
Retrieve storage numeric id earlier when still available
...
The numeric id is only available before the storage entry is deleted, so
get it at that time.
2014-10-13 15:52:48 +02:00
Vincent Petry
9dea79e341
Merge pull request #11305 from owncloud/ext-updateetagonmount
...
Update etag of parent dir when adding/removing ext storage mount points
2014-10-09 18:18:36 +02:00
Jörn Friedrich Dreyer
3427976bb6
strict comparison
2014-10-08 18:49:55 +02:00
Jörn Friedrich Dreyer
aa3ad898a9
fix amazon s3 issues
...
folder size and mtime is always unknown in s3
more s3 fixes
make rescanDelay of root dir configurable, add on the fly update of legacy storage ids, !isset -> empty when checking strings
reduce number of http calls on remove and rmdir
fix typo
2014-10-08 18:49:47 +02:00
Vincent Petry
6585eaa5df
Added failing unit tests for mount config hooks
2014-10-08 14:22:17 +02:00
Thomas Müller
e5a111b80e
Merge pull request #11285 from owncloud/dav-permissions-create
...
Fix dav permissions for folders
2014-09-26 09:21:32 +02:00
Robin Appelman
ccb4475a8d
Expose creatable permissions trough fileinfo
2014-09-25 14:00:13 +02:00
Robin Appelman
f88021dbbc
Don't keep the full info of all children in memory
2014-09-24 15:44:56 +02:00
Lukas Reschke
6eeb905871
Do only follow HTTP and HTTPS redirects
...
We do not want to follow redirects to other protocols since they might allow an adversary to bypass network restrictions. (i.e. a redirect to ftp:// might be used to access files of a FTP server which might be in a secure zone and not be reachable from the net but from the ownCloud server)
Get final redirect manually using get_headers()
Migrate to HTTPHelper class and add unit tests
2014-09-22 20:02:32 +02:00
Jörn Friedrich Dreyer
f83689e1be
in quota wrapper use === instead of ! for better readability and as in other wrappers
2014-09-22 11:35:42 +02:00
Jörn Friedrich Dreyer
561a7e47cd
return boolean in Ciose::stream_seek
2014-09-22 11:33:55 +02:00
Jörn Friedrich Dreyer
b752cb98d8
return boolean in OC::stream_seek
2014-09-22 11:20:15 +02:00
Robin Appelman
33f7af9207
Merge pull request #10958 from owncloud/db-ilike
...
Introduce cross-db ILIKE
2014-09-19 12:07:56 +02:00
Robin Appelman
0c03b2bdd5
Use ILIKE in cache search
2014-09-17 16:12:54 +02:00
Lukas Reschke
33c0d2f743
Fix mapping of relative paths
2014-09-17 11:38:10 +02:00
Robin Appelman
2f22e67570
Also check if the file itself is updatable
2014-09-17 11:35:16 +02:00
Robin Appelman
d25a9a118f
Check if a folder is deletable before we try to recursively delete it
2014-09-17 11:35:16 +02:00
Robin Appelman
ab79caf29b
Check if the parent is writable to check if a file is deletable
2014-09-17 11:35:16 +02:00
Robin Appelman
fa2b385d33
Fix method name
2014-09-10 15:59:24 +02:00
Lukas Reschke
c3d90b96c8
Merge pull request #10922 from owncloud/explicit-scan-transactions
...
Use bigger transactions when doing explicit file system scans
2014-09-09 23:32:32 +02:00
Jörn Friedrich Dreyer
ed2414fd0d
Merge pull request #10886 from owncloud/keep_fileid_on_move_in_objectstore
...
Keep fileid on move in objectstore, fixes #10848
2014-09-09 10:25:10 +02:00
Lukas Reschke
fa718d2e2c
Fix typo
2014-09-08 16:34:03 +02:00