Commit graph

915 commits

Author SHA1 Message Date
Robin Appelman
ce0aa02aac Dont do a cache rename if we cant delete the source file 2015-01-29 15:52:40 +01:00
Robin Appelman
2124540d1d Dont remove a file from cache if the delete operation failed 2015-01-29 15:39:56 +01:00
Morris Jobke
752b94d363 Merge pull request #13717 from owncloud/storage-donotwrapnullstorage
Prevent wrapping null storage
2015-01-28 01:00:20 +01:00
Morris Jobke
87b39e8f03 Merge pull request #13525 from owncloud/s2s-fixscanfileforbrokenstorage
Catch storage exception in scanner for remote shares
2015-01-28 00:31:37 +01:00
Vincent Petry
6d8985b671 Prevent wrapping null storage
Can happen when trying to instantiate external storages that have
incomplete config, where the constructor throws an exception (the
exception is caught in createStorage())
2015-01-27 17:40:08 +01:00
Vincent Petry
acec40fe5a Merge pull request #13561 from owncloud/trash-finaldeletewhencrossstoragefix
Call final unlink in trash wrapper's storage
2015-01-27 17:05:38 +01:00
Bernhard Posselt
b8769802df fix node interface 2015-01-26 15:58:41 +01:00
Vincent Petry
87ce64c24e Replace OC_Log::ERROR with OCP\Util::ERROR 2015-01-26 15:51:31 +01:00
Vincent Petry
f6e644b43f Catch storage exception in scanner for remote shares
Whenever an exception occurs during scan of a remote share, the share is
checked for availability. If the storage is gone, it will be removed
automatically.

Also, getDirectoryContent() will now skip unavailable storages.
2015-01-26 13:59:49 +01:00
Robin Appelman
87a1b2bdc4 Preserve mtime when doing cross storage move 2015-01-23 15:11:27 +01:00
Robin Appelman
960ff4f136 Apply wrappers to existing mounts before registering it 2015-01-23 13:48:35 +01:00
Vincent Petry
5fb8a4715d removeStorageWrapper to unregister a storage wrapper 2015-01-23 12:20:54 +01:00
Vincent Petry
6fb553e92c Do not call wrapStorage if storate with same name added twice 2015-01-22 16:24:24 +01:00
Thomas Müller
65041440de check is mimetype is set - fixed #13452 2015-01-19 15:04:53 +01:00
Robin McCorkell
2b99fc76ec Cleanup of PHPDoc return types 2015-01-16 20:30:43 +00:00
Robin Appelman
2248e465af Remove children from the cache in one query 2015-01-15 17:26:12 +01:00
Thomas Müller
337c43ce92 Merge pull request #13317 from owncloud/partfile-fileinfo
Return valid fileinfo objects for part files
2015-01-14 22:39:19 +01:00
Morris Jobke
c8fa85451c Merge pull request #13320 from owncloud/fix-php-doc-for-files-view
Fix annotations in file view
2015-01-13 18:05:00 +01:00
Morris Jobke
0a400b4577 drop unused parameter 2015-01-13 18:04:20 +01:00
Lukas Reschke
d66facc762 Fix annotations in file view 2015-01-13 14:53:00 +01:00
Robin Appelman
96dff341e2 Return valid fileinfo objects for part files 2015-01-13 13:59:28 +01:00
Morris Jobke
7746ac519f drop dead code - ref #13301 2015-01-13 13:52:25 +01:00
Thomas Müller
543fa0d45b Merge pull request #13291 from owncloud/node-searchcommonbasepathfix
Fix searchCommon to properly match path name
2015-01-13 13:25:51 +01:00
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
Robin Appelman
644755df66 Use bigger transactions when doing explicit file system scans 2014-09-08 14:15:41 +02:00
Jörn Friedrich Dreyer
8488be4d03 Keep fileid on move in objectstore, fixes #10848 2014-09-05 13:25:59 +02:00
Robin Appelman
e29b7e9335 Remove explicit propagate calls 2014-09-05 11:53:24 +02:00
Robin Appelman
d0e83a71aa Update cache before post hooks 2014-09-05 11:53:24 +02:00
Robin Appelman
1d8a88dd1b Fix warning in homecache 2014-09-05 11:53:23 +02:00
Robin Appelman
850542c5d6 Refactor Cache\Updater to work outside of the users home 2014-09-05 11:53:23 +02:00
Jesus Macias
91c8174013 Fix code with previous comments 2014-09-03 18:21:24 +02:00
Jesus Macias
883649b69c Reset changes on 3rdparty submodule 2014-09-03 18:20:09 +02:00
Robin Appelman
a9a37b5363 Don't automatically setup the filesystem the moment we load OC\Files\FileSystem 2014-09-02 16:15:42 +02:00
Thomas Müller
2e8026a7b5 Merge pull request #10619 from owncloud/issue/6722
Add a test to break the slugifyPath() with folder and file afterwards
2014-08-26 10:33:18 +02:00
Clark Tomlinson
6523c575f3 Merge pull request #10623 from owncloud/not-a-valid-resource-log-entries
Do not try to close the same resource multiple times
2014-08-25 12:52:06 -04:00
Joas Schilling
989da69cff Do not try to close the same resource multiple times 2014-08-25 15:31:43 +02:00
Joas Schilling
1846aebfff Use md5() of the original name instead of uniqid() for slugifying
Previously we used uniqid() here.
However this means that the behaviour is not reproducable, so
when uploading files into a "empty" folder, the folders name is
different.

If there would be a md5() hash collition, the deduplicate check
will spot this and append an index later, so this should not be
a problem.

Fix #6722
2014-08-25 15:06:12 +02:00
Joas Schilling
b861e1d696 Fix code layout before fixing the function 2014-08-25 15:06:10 +02:00
Jörn Friedrich Dreyer
ebf7758d10 Merge pull request #10595 from owncloud/swift-stream
Stream downloads from Swift object stores without downloading it first
2014-08-25 11:26:39 +02:00
Thomas Müller
0e8916b147 Merge pull request #7539 from owncloud/repair-legacystorageid
Added repair script to upgrade the legacy home storage ids
2014-08-22 14:22:39 +02:00
Robin Appelman
191a82e768 Stream downloads from Swift object stores without downloading it first 2014-08-22 14:11:36 +02:00
Vincent Petry
068f9d10f1 Added repair step for legacy storages 2014-08-20 23:14:05 +02:00
Morris Jobke
b3b3354809 move to public namespace 2014-08-19 14:05:08 +02:00
Stephan Peijnik
5d7deefd95 Use tabs for indentation.
Signed-off-by: Stephan Peijnik <speijnik@anexia-it.com>
2014-08-19 13:55:43 +02:00
Stephan Peijnik
2df52e54d7 Fix STORAGE_* constants usage by moving those constants into \OC\Files\Filesystem.
As constants not defined within a class cannot be automatically found by the
autoloader moving those constants into a class makes them accessible to
code which uses them.

Signed-off-by: Stephan Peijnik <speijnik@anexia-it.com>
2014-08-19 13:55:35 +02:00
Thomas Müller
1c23f54d42 Merge pull request #10341 from owncloud/issue/9928
[Issue/9928] Problems with filemtime in MappedLocal Storage
2014-08-19 10:10:09 +02:00
Joas Schilling
4d32e3548b Ensure that filename is prefixed with a slash 2014-08-14 16:48:30 +02:00
Morris Jobke
987a0565fb Merge pull request #10395 from owncloud/close-filehandle-lib-files
Close open file handles in files library
2014-08-14 10:57:54 +02:00
Robin Appelman
bba59bf815 Cast file id's to int so we can compare them properly 2014-08-13 19:18:34 +02:00
Morris Jobke
c6bf51c457 Close open file handles in files library
ref #10392
2014-08-13 15:48:32 +02:00
Robin Appelman
174805f5e3 Merge pull request #9762 from owncloud/owner-public
Return the proper owner for home storages
2014-08-12 14:29:17 +02:00
Joas Schilling
564bf23c1b Do not filemtime() on "." directory. Use empty string instead
Fix #9928
2014-08-11 17:39:37 +02:00
Joas Schilling
d7666d9d3d Remove doubled slash between folder and path 2014-08-11 16:50:52 +02:00
Thomas Müller
13d44f8f7f Merge pull request #10251 from owncloud/fix-dav-attributes-master
shared files/folders are not mounted
2014-08-11 14:40:47 +02:00
Bjoern Schiessle
6dda30b5a2 remove share permissions if user is excluded from sharing 2014-08-08 12:16:54 +02:00
Thomas Müller
520f6422ac Merge pull request #10079 from owncloud/Improve_scanner_message
Improved scanner error message
2014-08-07 16:09:52 +02:00
Thomas Müller
9d2cff50ed shared files/folders are not mounted 2014-08-07 16:01:13 +02:00
Robin Appelman
f1091280de Merge pull request #10184 from owncloud/getbyid-node
Fix Folder::getById
2014-08-07 13:40:17 +02:00
Robin Appelman
12207ec0c7 Fix SharedCache::getPathById 2014-08-06 13:38:14 +02:00
Robin Appelman
1deb6aadd3 return null instead of throwing an exception 2014-08-06 12:06:41 +02:00
Robin Appelman
bf8f910a32 Fix Folder::getById 2014-08-05 16:58:10 +02:00
Robin Appelman
244d4e1399 Make View->shouldEmitHooks more robust 2014-08-05 16:53:28 +02:00
Clark Tomlinson
26af116fcd Removing unnecessary switch statements in fopen methods. 2014-07-31 09:34:27 -04:00
Martin
d975012ae6 Improved scanner error message 2014-07-31 13:12:35 +02:00
Robin Appelman
e9de20952a Return the proper owner for home storages 2014-07-21 16:59:59 +02:00
Vincent Petry
3df7a83c72 Merge pull request #9406 from philfry/master
silently discard the response body, needed for apache/mod_dav and maybe ...
2014-07-21 12:22:06 +02:00
Robin Appelman
5a0397eb5e Fix renaming files in the root folder of a MappedLocal storage 2014-07-16 21:24:18 +02:00
icewind1991
d58c8d72cf Merge pull request #9550 from kofemann/dcache-fixes-for-upstream
storage: do not check file mode on rename
2014-07-16 16:06:14 +02:00
Robin Appelman
c3991ae13e Use the correct path when building the FileInfo for the search result 2014-07-14 18:32:45 +02:00
Tigran Mkrtchyan
03f422153d files: storage: rename should check parent directories of old and new files
as described by POSIX.1-2008
(see http://pubs.opengroup.org/onlinepubs/9699919799/functions/rename.html)

Signed-off-by: Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>
2014-07-10 14:58:59 +02:00
Robin Appelman
3e3d460729 use case insensitive LIKE when searching for files in mysql 2014-07-08 15:49:27 +02:00
Björn Schießle
a544bd3a0f Merge pull request #9357 from owncloud/sharing_unshare_on_delete
[sharing] unshare childrens on delete
2014-07-04 17:42:52 +02:00
Jörn Friedrich Dreyer
aeeae5f1b2 Merge pull request #8308 from owncloud/case_insensitive_search_oracle
use case insensitive linguistic sort and compare when connecting to oracle
2014-07-04 15:51:57 +02:00
Bjoern Schiessle
e9f5730869 make sure that the umount hook always contains the path relative to data/user/files 2014-07-04 10:34:54 +02:00
Jörn Friedrich Dreyer
b5545b81c6 make search case insensitive on postgres and oracle 2014-07-03 19:01:00 +02:00
Philippe Kueck
ef114b6594 silently discard the response body, needed for apache/mod_dav and maybe other dav servers which return an html body 2014-07-03 12:04:38 +02:00
Vincent Petry
ed29e7d160 Merge pull request #9329 from owncloud/sharing_check_target
don't move a share mount point into a different mount point
2014-07-02 21:01:03 +02:00
Robin Appelman
edb67f9f4d Remove invalid mounts from the active fs 2014-07-02 15:00:12 +02:00
Bjoern Schiessle
bb935978fa don't move a share mount point into a different mount point 2014-07-01 19:38:55 +02:00
Bjoern Schiessle
735eac6c9d add a explicit interface for the home storage 2014-07-01 17:31:33 +02:00
Robin Appelman
d78a2a9f78 Add StorageNotAvailableException 2014-06-30 15:46:37 +02:00
Thomas Müller
9032ce4535 Merge pull request #9266 from owncloud/fix_objectstore_etag_update
always regenerate etag when writing back file to objectstore
2014-06-29 20:59:20 +02:00
icewind1991
1a3e698294 Merge pull request #9263 from owncloud/remote-share-update
Better detecting of remote changes for external shares
2014-06-27 19:31:18 +02:00
Jörn Friedrich Dreyer
23fa75f5ac always regenerate etag when writing back file to objectstore 2014-06-27 18:49:06 +02:00
Robin Appelman
db3f0cee4a Fix parsing of webdav permissions 2014-06-27 17:28:56 +02:00
Robin Appelman
6f5d5b9a30 Also check for updated permissions for webdav storages 2014-06-27 17:27:47 +02:00
Robin Appelman
5b8c2ac750 Use the etag to check for updates in webdav storages where available 2014-06-27 17:10:46 +02:00
Vincent Petry
fd8b5680dd Merge pull request #8383 from owncloud/object_storage
Object storage
2014-06-27 16:53:03 +02:00
Jörn Friedrich Dreyer
25dbbbadd3 use normalize path to convert '.' to '' in objectstorestorage 2014-06-27 15:00:29 +02:00
Jörn Friedrich Dreyer
ab93f1949d update hasUpdated description, overwrtie testStat for objectstore test 2014-06-27 12:14:31 +02:00
Thomas Müller
171475b95a fix autoloader 2014-06-27 08:52:40 +02:00
Thomas Müller
c745240543 Move \OC\Files\Storage\DAV to core in order to reduce inter-app dependencies 2014-06-27 08:52:28 +02:00
Vincent Petry
8526556110 Merge pull request #9206 from owncloud/occ-scan-user
Prevent running the files:scan command as the wrong user
2014-06-26 17:03:23 +02:00
Jörn Friedrich Dreyer
f96a535f80 fix objectstore test execution 2014-06-26 11:30:00 +02:00
Robin Appelman
9a2ed86672 Prevent running the files:scan command as the wrong user 2014-06-25 15:22:49 +02:00
Jörn Friedrich Dreyer
8e6cb6dc54 delete object without downloading it first 2014-06-25 14:53:38 +02:00
Robin Appelman
113749bd96 really always take root of the substorage 2014-06-25 13:00:11 +02:00
Bjoern Schiessle
92a82f02b3 always take root of the substorage 2014-06-24 18:53:51 +02:00
Robin Appelman
92f2a430a8 Don't bother checking for external updates for objectstore storages 2014-06-24 14:48:59 +02:00
Robin Appelman
eb97eee964 Only initialize the swift container when manipulating an object 2014-06-24 14:42:52 +02:00
Robin Appelman
159b603d13 Add support for rackspace swift backends 2014-06-24 14:36:29 +02:00
Bjoern Schiessle
70ca292fd9 only the mount point has delete and update permissions to enable rename operation 2014-06-24 13:55:04 +02:00
Bjoern Schiessle
84d36df70b make sure that we always return the correct permissions 2014-06-24 13:39:37 +02:00
Jörn Friedrich Dreyer
28c1a95575 use common storage test 2014-06-23 16:29:01 +02:00
Jörn Friedrich Dreyer
7ec53571c4 use 'object' as the fakedir stream name 2014-06-23 11:07:01 +02:00
Jörn Friedrich Dreyer
c112a1d323 move to stream based IObjectStore interface, rearrange & reformat code 2014-06-20 12:27:47 +02:00
Jörn Friedrich Dreyer
f2fe00e972 fix rebase, use 'object::user:<username>' or 'object::store:<storageid> as storage id, by default use container/bucket name for storageid, make storageid configurable, store user only for HomeObjectStoreStorage, change updateObject() to writeObject() 2014-06-18 15:20:26 +02:00
Jörn Friedrich Dreyer
5cae863408 change architecture from inheritance to composition 2014-06-18 12:53:20 +02:00
Jörn Friedrich Dreyer
9335a5f07f remove duplicate method 2014-06-18 12:53:20 +02:00
Jörn Friedrich Dreyer
5722e31d1a add autocreate config option for containers, implement autocreate and delete of containers, use generated container names for tests 2014-06-18 12:53:20 +02:00
Jörn Friedrich Dreyer
4e65889f54 only use one config option 'objectstore' for root and home storage configuration 2014-06-18 12:53:20 +02:00
Jörn Friedrich Dreyer
7493ff0624 fix unit test by always initializing the root of the storage in the constructor 2014-06-18 12:53:20 +02:00
Jörn Friedrich Dreyer
10de4a7b90 move creation of / and users 'files' from storage constructor to setupFS / mount initialization 2014-06-18 12:53:20 +02:00
Jörn Friedrich Dreyer
87aaf39259 fix checking unset array values, deduplicate code, remove file from cache if it could not be stored in the objectstore 2014-06-18 12:53:20 +02:00
Jörn Friedrich Dreyer
eca536d8b4 minor code cleanup 2014-06-18 12:53:20 +02:00
Jörn Friedrich Dreyer
c020e8e658 use exceptions to notify abstract parent class of problems 2014-06-18 12:53:20 +02:00
Jörn Friedrich Dreyer
60a8419a1f when root storage cannot be mounted throw an exception visible to the end user 2014-06-18 12:53:20 +02:00
Jörn Friedrich Dreyer
1374ba9adf fix fallback config for default home storage 2014-06-18 12:53:20 +02:00
Jörn Friedrich Dreyer
ccb698a6a8 move swift and abstract code to core 2014-06-18 12:53:20 +02:00
Jörn Friedrich Dreyer
3c66a8c8ed allow configuring objectstore as home and root storage 2014-06-18 12:53:19 +02:00
Robin Appelman
b188550c22 Also support removeable mounts with rmdir 2014-06-16 16:24:42 +02:00
Robin Appelman
0532f5c39a Fix permission for movable storage root 2014-06-16 16:20:40 +02:00
Robin Appelman
87e311b996 Fix storage being passed to cache/watcher and scanner when using storage wrappers 2014-06-14 10:14:08 +02:00
Robin Appelman
65f3b2fad2 Add server<->server sharing backend 2014-06-14 10:10:37 +02:00
Vincent Petry
b595c982d0 Merge pull request #8968 from owncloud/scanner-parent-repair
Repair broken parent link in the scanner
2014-06-12 17:40:44 +02:00
Vincent Petry
75a53b3c49 Merge pull request #8901 from owncloud/permissions-update-cache
Save the permissions in the filecache if it's not saved yet
2014-06-11 18:28:55 +02:00
Robin Appelman
6b1d8a56bb remove unused argument 2014-06-10 15:42:37 +02:00
Robin Appelman
054083b9cd add some comments 2014-06-10 15:37:43 +02:00
Robin Appelman
21cfd1014a Repair broken parent link in the scanner 2014-06-10 15:26:18 +02:00
Bjoern Schiessle
9dc0befcca call self::getNumericStorageId() to get the numeric ID 2014-06-10 14:48:19 +02:00
Robin Appelman
41d2354191 Save the permissions in the filecache if it's not saved yet 2014-06-09 12:34:35 +02:00
Thomas Müller
c053f27381 Merge pull request #8921 from owncloud/fix-remove-storage-master
No need to create a storage within remove
2014-06-06 16:16:44 +02:00
icewind1991
c47d4ebbac Merge pull request #8666 from owncloud/mount-remove
Support for (re)moving mountpoints
2014-06-06 11:57:43 +02:00
Thomas Müller
26993f2167 No need to create a storage within remove 2014-06-06 11:39:35 +02:00
Thomas Müller
ff651a3e0d Merge pull request #8909 from owncloud/fix-temporary-storage-rmdirr-master
use system function to recursive remove the directory used by temporary ...
2014-06-06 10:02:23 +02:00
Robin Appelman
e362373a30 Movable storage root can always be moved and deleted 2014-06-06 09:56:01 +02:00
Robin Appelman
a432459685 use triple equals 2014-06-06 09:56:01 +02:00
Robin Appelman
42a362f249 Fix phpdoc and comments 2014-06-06 09:56:01 +02:00
Bjoern Schiessle
329bfd81c3 remove encryption keys if user unshares a file 2014-06-06 09:55:59 +02:00
Robin Appelman
dea5219244 Fix folder name for storage root 2014-06-06 09:55:59 +02:00
Robin Appelman
4fbc991ea2 Add the removing logic for mounts 2014-06-06 09:55:59 +02:00
Robin Appelman
8abe1c3f1a Don't do rename hooks for cache when moving the mountpoint 2014-06-06 09:55:58 +02:00
Robin Appelman
60a659c87e Add a system for (re)movable mount points 2014-06-06 09:55:58 +02:00
Thomas Müller
d359765bdc Update PHPDoc 2014-06-06 09:44:34 +02:00
Thomas Müller
ad4ec414c9 use system function to recursive remove the directory used by temporary storage 2014-06-06 09:29:31 +02:00
Robin Appelman
00539cf8f9 Verify that we have a valid storage in View->getPath 2014-06-05 15:50:19 +02:00
Thomas Müller
e1beb8c6c3 Merge pull request #8889 from owncloud/mtime-reuse
Don't update the mtime if the storage mtime hasn't changed
2014-06-05 13:18:18 +02:00
Vincent Petry
bbdcbb9911 Merge pull request #8866 from owncloud/flock-quotafix
Fixed quota wrapper to return the value from flock()
2014-06-05 13:11:45 +02:00
icewind1991
bd373d9621 Merge pull request #7878 from owncloud/quota-extstorageswitch
Added switch to count external storage data in quota
2014-06-05 11:23:32 +02:00
Jörn Friedrich Dreyer
f1bf06f8cf Merge pull request #8884 from owncloud/move-flock-to-app
remove file locking - code will continue to live in it's own app
2014-06-05 10:54:24 +02:00
Robin Appelman
3e73251750 Don't update the mtime if the storage mtime hasn't changed 2014-06-05 10:08:25 +02:00
Thomas Müller
ff3ded6cb2 Merge pull request #8852 from owncloud/kill-permissions-master
Kill permissions table
2014-06-05 10:05:05 +02:00
Thomas Müller
da3974bcb2 - drop permissions table and related code
- the file/folder's permission is now stored in the file cache
- BackGroundWatcher has been removed - this has meanwhile be replaced by occ files:scan which can be executed in a cron jobs
- increase version to trigger database migration
2014-06-05 08:22:01 +02:00
Thomas Müller
ec7225da66 remove file locking - code will continue to live in it's own app 2014-06-04 20:11:54 +02:00
Thomas Müller
a2db53b928 Merge pull request #8471 from owncloud/versioning_no_longer_track_the_size
[versioning] let the file cache track the size of the versions
2014-06-04 18:19:48 +02:00
Vincent Petry
da889ff029 Added experimental switch to count external storage data in quota
This includes all mountpoints except the Shared one in
the used space calculation.

Added unit tests for ext storage inclusion in quota calculation
2014-06-04 16:08:59 +02:00
Vincent Petry
b5f0a17918 Merge pull request #8822 from owncloud/cache-change-propagator
[WIP] Improved propagation of cache changes
2014-06-04 13:03:14 +02:00
Vincent Petry
3507964820 Fixed quota wrapper to return the value from flock() 2014-06-04 12:36:53 +02:00
Bjoern Schiessle
48eb0515e9 only lock if unlink is called for a file 2014-06-04 07:55:46 +02:00
Bjoern Schiessle
ab6680e9ab name the storage wrapper to make sure that we don't apply the wrapper multiple times 2014-06-04 07:55:46 +02:00
ringmaster
ba887d2b17 Restore the reference to this used exception class. 2014-06-04 07:55:45 +02:00
ringmaster
54865815f5 Move Lock to private namespace, add interface. Update PHPDoc. 2014-06-04 07:55:45 +02:00
ringmaster
392a1b6662 Removed unused vars/declarations, update PHPDoc. 2014-06-04 07:55:45 +02:00
ringmaster
896bc526e6 Remove unused methods. 2014-06-04 07:55:44 +02:00
ringmaster
f9dbdb7c5c Add actual locking and log changes necessary for debugging. 2014-06-04 07:55:44 +02:00
ringmaster
dc1e3620d2 Continued flock work. 2014-06-04 07:55:44 +02:00
ringmaster
5365ae416e flock changes. Work in progress. 2014-06-04 07:55:44 +02:00
Robin Appelman
a6bb1e1bf8 Fix size calculation during recursive scan 2014-06-03 19:54:59 +02:00
Robin Appelman
6689d67a5b Fix recursive scanning 2014-06-02 21:04:36 +02:00
Bjoern Schiessle
e0a5f3b570 get permissions directly from share storage to avoid additional db calls 2014-06-02 20:17:40 +02:00
Bjoern Schiessle
7ad0fee0b5 let file cache handle the versions size 2014-06-02 18:55:13 +02:00
Robin Appelman
e002ff6065 propagate changes in the scanner 2014-06-02 15:24:08 +02:00
Robin Appelman
0158788a2a Split of cache writes in the scanner to their own methods 2014-06-02 14:52:21 +02:00
Robin Appelman
a31f089266 Add a change propagator class to handle propagating etag and mtime changes 2014-06-02 14:39:12 +02:00
Owen Winkler
da6aae28ad Merge pull request #8607 from owncloud/filescan_app_hook
Allow apps to control via a hook skipping add/remove a file during filescan
2014-05-30 12:38:37 -04:00
ringmaster
19f0c47842 Missed one. 2014-05-30 10:40:26 -04:00
Thomas Müller
31ad1cbdd8 Merge pull request #5365 from owncloud/filesize-improvements-32bit
Add LargeFileHelper / Add CURL filesize workaround / Fix some 32-bit filesize issues
2014-05-30 16:13:48 +02:00
ringmaster
16ae63bdfd Updates per comments on PR:
* Use "filesystem_cache_readonly" config setting, update comment in config.sample
* Use $this->cacheActive to cache config setting
* Add public Scanner::setCacheActive() to set $cacheActive programmatically
2014-05-30 09:42:41 -04:00
Andreas Fischer
0417e52134 Increase file size limit from 2 GiB to 4 GiB when workarounds are unavailable. 2014-05-29 16:26:02 +02:00
Andreas Fischer
0bae68017e Cast to number instead of integer in OC\Files\Cache\HomeCache 2014-05-29 16:26:02 +02:00
Andreas Fischer
a34aa1959a Cast to number instead of integer in OC\Files\Cache\Cache 2014-05-29 16:26:01 +02:00
Andreas Fischer
fb7ec2bb22 Only call $this->filesize() for files. 2014-05-29 16:26:01 +02:00
Andreas Fischer
c8fa1fd687 Refactor Large File handling code. 2014-05-29 16:26:01 +02:00
Andreas Fischer
3f8f8027d2 Cast to numeric instead of float, i.e. use an integer if possible. 2014-05-29 16:17:13 +02:00
Andreas Fischer
6195f13bda Use CURL to get filesize on 32bit systems. 2014-05-29 16:17:13 +02:00
Robin Appelman
998fa2d9be Pass any methods custom to specific storage implementations to the wrapped storage 2014-05-29 16:13:05 +02:00
Robin Appelman
0ae7a49c8e Fix storage wrapper being called with null 2014-05-29 14:15:48 +02:00
Robin Appelman
8c5521fdfc Add $storage->instanceOfStorage to handle instanceof for storage wrappers 2014-05-29 13:45:50 +02:00
icewind1991
c0f02be50a Merge pull request #3908 from owncloud/storage-folder-copy-rename
Recursive copy and remove for local storage backends
2014-05-29 13:29:24 +02:00
Thomas Müller
3ef9570d02 Merge pull request #8547 from owncloud/path-length-master
Handling long paths properly in \OC\Files\View
2014-05-29 00:08:29 +02:00
ringmaster
f79948f519 Prevent apps from affecting the scanner via hook. 2014-05-28 13:20:20 -04:00
Robin Appelman
467e9c2bb0 Remove code duplication 2014-05-28 18:16:24 +02:00
Robin Appelman
af35b6ad9d Fix LocalStorage->unlink to work on folder as expected 2014-05-28 18:16:24 +02:00
Robin Appelman
8187164fe1 re-use rescursive copy from common storage 2014-05-28 18:16:24 +02:00
Robin Appelman
488fc402e4 remove unneeded check 2014-05-28 18:16:23 +02:00
Robin Appelman
d15ed9b4d3 use \OC\Files\Filesystem::isIgnoredDir 2014-05-28 18:16:23 +02:00
Robin Appelman
ea44f0e20f fix recursive copy and rename for common storage backend 2014-05-28 18:16:23 +02:00
Robin Appelman
c3c9612c99 fix recursive copy and rename for mapped local storage backend 2014-05-28 18:16:23 +02:00
Robin Appelman
03ba497a8c add recursive copy to local storage backend 2014-05-28 18:16:23 +02:00
Robin Appelman
38c1da0976 fix recursive rename for local storage backend 2014-05-28 18:16:23 +02:00
Robin Appelman
e83b41493f remove unneeded delTree 2014-05-28 18:16:23 +02:00
Thomas Müller
a2e4bc8d33 # This is a combination of 2 commits.
# The first commit's message is:

adding tests for long paths
increment path field in database up to 4000 (maximum for Oracle - otherwise we could use php's 4096)
increment version to trigger database migration
adding unit test for too long path

# This is the 2nd commit message:

fix too long path
2014-05-28 15:30:44 +02:00
ringmaster
3d1ba574e4 Change visibility of scanner internals
so that descendant classes can access them.
2014-05-28 07:59:38 -04:00
ringmaster
26d169b27c Use 'filesystem_check_enable' as a config option. 2014-05-27 16:01:16 -04:00
ringmaster
3b287f8274 Allow the default behavior to come from the config. 2014-05-27 15:21:35 -04:00
ringmaster
fdf26c5a3f Rename variable to something more appropriate. 2014-05-27 15:12:56 -04:00
ringmaster
645e7035a4 Allow apps to control via a hook to skip adding/removing a file during filescan 2014-05-27 15:12:54 -04:00
Frank Karlitschek
48d0cebc42 Merge pull request #8674 from owncloud/watch-policy
Add a config option for setting the filesystem watcher policy
2014-05-26 10:48:44 +02:00
Robin Appelman
151c48494e Add a config option fro setting the filesystem watcher policy 2014-05-23 12:20:31 +02:00
Robin Appelman
ff1f341d97 Fix phpdoc 2014-05-22 13:30:32 +02:00
Bjoern Schiessle
12338e0ef0 allow admin to disable sharing for specific groups of users 2014-05-22 10:43:44 +02:00
Bjoern Schiessle
5f403f3e92 move the mount point up if a share is mounted to a subfolder and the subfolder no longer exists 2014-05-21 13:19:17 +02:00
Morris Jobke
dc36d30953 Remove all occurences of @brief and @returns from PHPDoc
* test case added to avoid adding them later
2014-05-19 17:50:53 +02:00
Thomas Müller
95741f3936 Merge pull request #8435 from owncloud/fix-8322-master
Expose permission via WebDAV
2014-05-19 16:52:03 +02:00
Robin McCorkell
4755392c65 More PHPDoc for file functions 2014-05-13 19:09:14 +01:00
Robin McCorkell
bac8962bbc Fix Scrutinizer errors 2014-05-13 19:08:14 +01:00
Robin McCorkell
87b548ed91 Fix all PHPDoc types and variable names, in /lib 2014-05-13 19:08:14 +01:00
Robin McCorkell
a7ae2e874a Squash 'a | b' into 'a|b', in /lib 2014-05-13 19:08:14 +01:00
Robin McCorkell
b5bc37d2e4 Fix @return array PHPDocs, in /lib 2014-05-13 19:08:14 +01:00
Vincent Petry
bab8c1f8e5 Fixed getAbsolutePath case when path is "0"
Make sure to correctly check for string emptiness when the passed path
is "0".
2014-05-13 17:38:46 +02:00
Thomas Müller
e0dd69e4e6 remove legacy aka deprecated code: OC_FilesystemView 2014-05-12 16:30:39 +02:00
Vincent Petry
05dc694c5c Fix getPathById for Oracle
Added extra code to handle the case of Oracle which saves empty strings
as null values.
2014-05-08 13:33:55 +02:00
Vincent Petry
9e18be6422 Merge pull request #8377 from youngguns-nl/issue_8376
RecursiveDirectoryIterator does not work on NFS
2014-05-02 18:45:09 +02:00
Thomas Müller
c92c577b5e - Introduce isShared() and isMounted() on FileInfo class
- Reuse these methods on determineIcon()
- Generate permission string for the desktop client
- expose {http://owncloud.org/ns}permissions as additional WebDAV property containing the permission string
2014-05-02 17:37:16 +02:00
Joas Schilling
c060f6ec7b Deduplicate code 2014-04-29 10:34:28 +02:00
Joas Schilling
c1caaa6241 Correctly emit create/update hooks when a large file is being created/update
after being uploaded in .part files

Fix #8131
2014-04-29 10:34:27 +02:00
Joas Schilling
4fa9e46d2b Emit a new hook, when a file is being updated only
The write-hook also is triggered for created files

Fix #8131
2014-04-29 10:34:26 +02:00
Sjors van der Pluijm
e8a287f5bb refs #8376; spaces=>tabs 2014-04-28 19:52:06 +02:00
Sjors van der Pluijm
54f482ff9c refs #8376; added comment and applied patch on other files 2014-04-28 19:32:25 +02:00
Sjors van der Pluijm
d7ec1fe447 rewind iterator before iteration starts 2014-04-28 13:05:20 +02:00
Sjors van der Pluijm
d8be9d96ed fixes #8376 2014-04-28 10:20:24 +02:00
icewind1991
7599fa94ce Merge pull request #8350 from owncloud/share-search-mime
fix search by mime for shared single files
2014-04-25 15:54:36 +02:00
icewind1991
5194f014c9 Merge pull request #7504 from owncloud/webdav-injection
Proper injection of filesystem view into the webdav connector
2014-04-25 14:42:43 +02:00
Robin Appelman
194ea66cb5 Merge branch 'master' into share-search-mime 2014-04-25 14:04:41 +02:00
Robin Appelman
672a8248ce Correct the path returned by getFolderContent for substorages 2014-04-25 13:56:45 +02:00
Robin Appelman
456ca0cf7d fix paths of searchByMime results on substorages 2014-04-25 12:31:44 +02:00
Robin Appelman
6c20a014ea merge master into webdav-injection 2014-04-25 11:47:06 +02:00
Björn Schießle
f520305848 Merge pull request #8026 from owncloud/remove_shared_folder
remove the "Shared" folder
2014-04-24 18:45:45 +02:00
Bjoern Schiessle
93469ca468 make it possible to move files out of a shared mount point 2014-04-23 12:54:26 +02:00
Bjoern Schiessle
652d417a58 we don't allow to share a folder if it contains a share mount point 2014-04-23 12:54:26 +02:00
Bjoern Schiessle
dfb69e9418 allow user to delete shared files/folders 2014-04-23 12:54:25 +02:00
Bjoern Schiessle
a02fb3722b user should be able to rename/delete shared files if the owner allowed it 2014-04-23 12:54:24 +02:00
Bjoern Schiessle
72bbb9ca20 allow to remove and change mount points 2014-04-23 12:54:24 +02:00
Robin Appelman
3d0661a1e7 Fix error when viewing expired link 2014-04-23 12:54:18 +02:00
Robin Appelman
b42ce6c30a Prevent error if previously cached data doesn't have an etag 2014-04-22 15:24:38 +02:00
Morris Jobke
a2a0eb370b Merge pull request #8222 from owncloud/type-hinting
Type hinting fixes
2014-04-17 16:08:15 +02:00
Robin McCorkell
13b463cc17 Merge pull request #8189 from Xenopathic/misc_fixes
Various fixes
2014-04-17 11:56:51 +01:00
Bart Visscher
a4b7f5155f Fix PHPdoc in lib/private
using scrutinizer patch
2014-04-15 22:55:20 +02:00
Thomas Müller
8bc7174bdc Merge pull request #8104 from owncloud/lukepolo-master
Added the ability to Drag and Drop folders [chrome]
2014-04-15 21:39:32 +02:00
Thomas Tanghus
51e47319ef White-list known secure mime types. Refs. #8184 2014-04-14 17:17:50 +02:00
Robin McCorkell
eeee9eacea Prevent error from cache update on deleted files 2014-04-13 16:17:13 +01:00
Vincent Petry
8d05848391 Merge pull request #7825 from owncloud/hash-stream
Use streams when generating hashes of remote files
2014-04-10 10:42:04 +02:00
Thomas Müller
7dd0074655 fixing mkdir code to respect external file systems as well 2014-04-07 23:17:35 +02:00
Thomas Müller
3587c88fe9 Merge branch 'master' of https://github.com/lukepolo/core-1 into lukepolo-master
Conflicts:
	apps/files/js/file-upload.js
2014-04-07 22:28:16 +02:00
Robin Appelman
b61ec7352b dont scan not existing files in View->getFileInfo 2014-04-04 15:10:07 +02:00
Vincent Petry
4cc70ec39d Merge pull request #7979 from owncloud/core-fixfilegetcontentsloop
Correctly read the full stream in file_get_contents
2014-04-02 10:55:50 +02:00
Robin Appelman
1c7a71ca77 use binary safe read 2014-04-02 04:38:54 +02:00
Robin Appelman
54a15a8001 Use streams when generating hashes of remote files 2014-04-02 04:38:54 +02:00
Vincent Petry
d811026ec9 Merge pull request #7935 from owncloud/getpath-shared
Make getPath work for shared files
2014-04-01 21:59:09 +02:00
Vincent Petry
0067a4eac2 Added missing fclose in file_get_contents and file_put_contents 2014-04-01 10:08:16 +02:00
Vincent Petry
d6ce45fe61 Correctly read the full stream in file_get_contents
When using user-defined stream wrappers, PHP will
return a maximum of 8192 bytes even if more was
requested.

This fix uses stream_get_contents to make sure the full stream is read
and not only the first 8 KB.

Added unit test with a bigger test file to cover this case.
2014-04-01 10:07:16 +02:00
Robin Appelman
0c2585f3ac Improve phpdoc 2014-03-31 14:29:55 +02:00
Robin Appelman
f331d5f9d4 Give storages the option to implement the getById behaviour for View->getPath 2014-03-28 15:15:56 +01:00
Thomas Müller
70db348475 Merge pull request #7824 from owncloud/hash-parameter-order
Fix parameter order for Storage\Local::hash
2014-03-28 13:06:07 +01:00
Vincent Petry
040f430f0c Merge pull request #7829 from owncloud/cachefolderlocation
Cache folder is now configurable
2014-03-28 12:08:38 +01:00
Vincent Petry
e76be308eb Remove unused setUserVars utility method
That method was moved to the external storage recently so
isn't needed here any more.
2014-03-26 09:39:09 +01:00
Thomas Müller
ed97d872af Merge pull request #7325 from owncloud/recursive-mkdir-local
Recursive mkdir fixes #7047
2014-03-25 22:45:14 +01:00
Thomas Müller
1ae10b9da3 Merge pull request #7420 from owncloud/cachehooks-first
Manually triger the filecache update hooks before any other hook
2014-03-25 22:41:09 +01:00
Thomas Müller
bbc2e37259 Merge pull request #7477 from owncloud/foldersize-reuse
Allow re-using already known fileinfo when calculating folder sizes
2014-03-25 22:33:24 +01:00
Vincent Petry
10c9b8eb99 Cache folder is now configurable
When using an external cache folder, it is automatically mounted in
FileSystem::initFileSystem so that any app can use it transparently
by creating a view on the "/$user/cache" directory.
2014-03-24 12:57:11 +01:00
Robin Appelman
7a8f1389fe fix temporary file based common hash 2014-03-21 13:23:14 +01:00
Lukas Reschke
2c561c9c50 Merge pull request #7794 from owncloud/extstorage-obfuscatepasswords
Obfuscate passwords in ext storage config
2014-03-20 16:31:12 +01:00
Robin Appelman
fffe330bbc Fix parameter order for Storage\Local::hash 2014-03-20 15:32:12 +01:00
Vincent Petry
66bc0f0848 Still return quota value when free space is unknown
Fixed the quota storage wrapper to correctly return the quota value when
the free space is not known (which usually happens when the disk_free_space
function is disabled)
2014-03-19 19:07:11 +01:00
Vincent Petry
4cb53f77b2 Moved external storage mounting code to files_external app
Moved the mounting code for external storage from
OC\Filesystem::initMountPoint to files_external using the
post_initMountPoints hook
2014-03-19 12:45:38 +01:00
Thomas Müller
6b9ae27b90 drop file cache migration OC5 -> OC6 2014-03-18 17:14:38 +01:00
Robin Appelman
eabeedb306 Merge branch 'master' into cachehooks-first 2014-03-13 15:22:00 +01:00
Robin Appelman
d55c7223a9 Merge branch 'master' into foldersize-reuse
Conflicts:
lib/private/files/cache/homecache.php
2014-03-11 13:04:20 +01:00
Vincent Petry
c1cb9ee9b0 Merge pull request #7650 from owncloud/quota-totalspace
Fixed total space display when data size exceeds quota
2014-03-11 12:40:59 +01:00
Vincent Petry
010eef95c0 Fixed total space display when data size exceeds quota
The total space display in the personal page now shows the quota value
instead of used space when used space exceeds the quota (soft quota).
2014-03-10 17:59:14 +01:00
Vincent Petry
4fdf7682c9 Merge pull request #7398 from owncloud/trash_dont_rely_on_db
[trash] fall back if file is not in db
2014-03-10 16:04:47 +01:00
Bjoern Schiessle
4562909a20 get trash size from file cache 2014-03-10 15:13:28 +01:00
Vincent Petry
26513bc17b Merge pull request #7624 from owncloud/enc-encryptedusedspacefix
[master] Fixed used space to be based on unencrypted size
2014-03-10 09:38:24 +01:00
Thomas Tanghus
212699e389 Merge pull request #7628 from owncloud/fileinfo-type
Fix FileInfo->getType errors
2014-03-09 23:34:01 +01:00
Robin Appelman
51165a1a04 Check if value exists before returning 2014-03-07 15:16:35 +01:00
Vincent Petry
48d63a6278 Return unencrypted_size of folder when queried
This fixes the "used space" to be based on the unencrypted size, not
encrypted size, to be consistent with how quota/space is handled when
encryption is enabled
2014-03-07 14:59:09 +01:00
Robin Appelman
65f52fee4f Fix FileInfo->getType errors 2014-03-07 14:52:44 +01:00
Vincent Petry
7f24d42ca5 Propagate unencrypted_size up to the file cache root 2014-03-07 11:00:22 +01:00
Robin Appelman
895fc0fa26 Fix check if fileinfo is valid 2014-03-06 14:23:27 +01:00
Robin Appelman
a8c67dc675 Add caching for getLocalFile on remote storages 2014-03-04 15:44:58 +01:00
Robin Appelman
06c6163265 Check if fields we need are actually set to prevent errors 2014-03-03 16:48:28 +01:00
Robin Appelman
c87658feda Fix updater when getFileInfo fails 2014-03-03 12:56:08 +01:00
Robin Appelman
da386aad59 Allow re-using already known fileinfo when calculating folder sizes 2014-02-28 14:23:07 +01:00
Robin Appelman
3ff12ef4ec Also send explicit cache hooks when calling file_put_contents with a resource 2014-02-28 14:21:33 +01:00
Robin Appelman
7c92e2e3ad Update rawlist to work with new fileinfo object 2014-02-27 14:04:19 +01:00
Robin Appelman
bc49c6be04 Manually triger the filecache update hooks before any other hook 2014-02-26 14:29:13 +01:00
icewind1991
59df3ffdf4 Merge pull request #7279 from owncloud/folderid-reuse
Reuse the folder id in View->getFolderContents
2014-02-26 12:18:34 +01:00
Vincent Petry
7f7d674c2a Merge pull request #7335 from owncloud/fix-7333
Fix code to search for mount.json in custom data folders
2014-02-25 15:27:47 +01:00
Vincent Petry
9b4af31bac Merge pull request #7371 from owncloud/core-storagemovedeleteall
Replace deleteAll call with unlink call on rename
2014-02-25 14:52:21 +01:00
Bjoern Schiessle
ebd73aee8f don't overwrite keys if rename was done by a stream copy 2014-02-24 17:24:43 +01:00
Vincent Petry
a23ef25010 Removed unused deleteAll method on Common storage class
The "deleteAll" method on the Common storage class isn't used anywhere.
Also, it isn't defined on the Storage interface so this fix removes it
completely.
2014-02-24 12:21:48 +01:00
Vincent Petry
c465835e85 Replace deleteAll call with unlink call
The method deleteAll() doesn't officially exist on the Storage class as
it's not defined on the interface, which means it fails on the Quota
storage wrapper and might fail on some external storage classes.
Also, this here is the only use case for that one method.
2014-02-24 12:20:11 +01:00
Robin Appelman
f86dffd56c Merge branch 'master' into recursive-mkdir-local 2014-02-21 15:43:54 +01:00
Robin Appelman
3487a95eab Remove fileid parameter for getFolderContent 2014-02-21 15:36:24 +01:00
Robin Appelman
dd98e6333f Split getFolderContentById 2014-02-21 15:35:12 +01:00
Robin Appelman
3980a7d9c6 Merge branch 'master' into folderid-reuse 2014-02-21 15:33:12 +01:00
Lukas Reschke
f11658698d Fix path to the mount file 2014-02-20 18:53:37 +01:00
Thomas Müller
ec45a3c0e2 Merge pull request #6962 from owncloud/quota-space-root
Allow passing a root folder to get the used space from in the quota wrapper
2014-02-20 16:47:59 +01:00
Robin Appelman
d1c392d9ad Also make "regular" local storage's mkdir recursive 2014-02-20 15:36:30 +01:00
Joshua Medeiros
76aa4714cf Recursive mkdir fixes #7047 2014-02-20 15:35:00 +01:00
Lukas Reschke
c869e0116b Merge pull request #6999 from kofemann/mount-config
mount: make location of mount.json configurable
2014-02-20 15:15:00 +01:00
Luke Policinski
b01492fecd Feature Added : Ability to drag and drop in Chrome 2014-02-19 21:28:32 +00:00
Luke Policinski
79a6d89bcc Feature Added : Ability to drag and drop in Chrome 2014-02-19 21:23:39 +00:00
Morris Jobke
bcad6e641a Merge pull request #7274 from owncloud/scrutinizer-patch-1
Scrutinizer Auto-Fixes
2014-02-19 11:51:04 +01:00
icewind1991
2d5ab1a5c4 Merge pull request #7260 from owncloud/watcher-policy
Allow setting the frequency of which the file watcher checks for updates
2014-02-19 11:17:27 +01:00
Robin Appelman
1331de554c Reuse the folder id in View->getFolderContents 2014-02-19 10:46:02 +01:00
Vincent Petry
e517e642be Merge pull request #7257 from owncloud/filelist-fileinfo
use a FileInfo object of the directory when generting the filelist
2014-02-19 09:40:11 +01:00
Scrutinizer Auto-Fixer
adaee6a5a1 Scrutinizer Auto-Fixes
This patch was automatically generated as part of the following inspection:
https://scrutinizer-ci.com/g/owncloud/core/inspections/cdfecc4e-a37e-4233-8025-f0d7252a8720

Enabled analysis tools:
 - PHP Analyzer
 - JSHint
 - PHP Copy/Paste Detector
 - PHP PDepend
2014-02-19 09:31:54 +01:00
Robin Appelman
2166683e3b Allow setting the frequency of which the file watcher checks for updates 2014-02-18 16:34:25 +01:00
Robin Appelman
d18b9f6ea4 use a FileInfo object of the directory when generting the filelist 2014-02-18 15:39:35 +01:00
Thomas Müller
9fac95c2ab Merge branch 'master' into scrutinizer_documentation_patches
Conflicts:
	lib/private/appconfig.php
2014-02-14 23:03:27 +01:00
Robin Appelman
09502fcb36 remove the JsonSerializable interface from \OC\Files\FileInfo 2014-02-14 19:26:06 +01:00
icewind1991
2a7509ee50 Merge pull request #6748 from owncloud/fileinfo
Add a FileInfo class which holds all info of a file ...
2014-02-14 15:16:39 +01:00
Vincent Petry
c442a03d3a Merge pull request #7075 from owncloud/quota-storagexsendfile
Added isLocal() method to storage, used for xsendfile
2014-02-11 14:49:39 +01:00
Robin Appelman
e6df86f4cb Merge branch 'master' into quota-space-root 2014-02-10 14:03:06 +01:00
Robin Appelman
5ffc43cba0 Merge branch 'master' into remove-user-storage-entry 2014-02-10 13:53:01 +01:00
Joas Schilling
b330d07b51 Fix more documentation failes
Issue #7111
2014-02-08 11:47:55 +01:00
Vincent Petry
788c8540aa Added isLocal() method to storage, used for xsendfile
Added isLocal() method to Storage to find out whether the storage is
local or not.
This method is used for the x-sendfile logic to find out whether to add
the headers.
2014-02-06 20:53:15 +01:00
Jörn Friedrich Dreyer
2a6a9a8cef polish documentation based on scrutinizer patches 2014-02-06 17:02:21 +01:00
Jens-Christian Fischer
11f46e121c close statement in MimeType detection is executed [#7069]
close statement was never executed due to it being after a return
statement.
2014-02-04 17:03:52 +01:00
Robin Appelman
0ae4022fb4 Also clean up the filecache table when deleting a storage entry 2014-02-03 16:36:21 +01:00
Tigran Mkrtchyan
8cc9727520 mount: make location of mount.json configurable
do not share users data with config files

Signed-off-by: Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>
2014-01-29 17:14:23 +01:00
Robin Appelman
4e2b52a376 merge master into fileinfo 2014-01-29 16:33:27 +01:00
Robin Appelman
20c2aaab00 Actually rename the variable 2014-01-27 16:26:54 +01:00
Robin Appelman
c8207312c7 Fix phpdoc 2014-01-27 16:00:10 +01:00
Robin Appelman
a521949baf Allow passing a root folder to get the used space from in the quota wrapper 2014-01-27 15:41:56 +01:00
Robin Appelman
fc5f20112e Add isReadable, isUpdateable, isDeletable, isShareable 2014-01-24 15:54:40 +01:00
Robin Appelman
374e3475c9 Also remove the user's home storage from the storage table when deleting a user 2014-01-21 23:58:48 +01:00
Robin Appelman
3d6d8d1bb6 Reuse the data retrieved from the cache in checkUpdate 2014-01-20 15:21:21 +01:00
Vincent Petry
1af7dab535 Fixed quota wrapper to not wrap failed fopen streams
When calling fopen() on some storage types, these return false instead
of throwing an exception.

This fix makes sure that in case the stream wasn't opened (for example
when a file doesn't exist any more) the stream isn't wrapped.

Also added 'rb' as another case that doesn't need to be wrapped.

Fixes #6832
2014-01-19 18:51:36 +01:00
Robin Appelman
5cb08bb9cb Merge branch 'master' into fileinfo
Conflicts:
	tests/lib/files/cache/cache.php
2014-01-17 14:47:29 +01:00
Vincent Petry
34559ef114 Merge pull request #6768 from owncloud/scanner-use-storage-mtime
Use storage_mtime when determining if we can reuse cached data while scanning
2014-01-15 01:31:33 -08:00
Robin Appelman
c01949ec0e Merge branch 'master' into fileinfo 2014-01-14 16:31:08 +01:00
Robin Appelman
203d5d01ca Use storage_mtime when determining if we can reuse cached data while scanning 2014-01-14 13:54:07 +01:00
Robin Appelman
e706cf6c06 add Support for passing a FileInfo instance to View->putFileInfo 2014-01-13 15:57:49 +01:00
Robin Appelman
82762bb462 remove ArrayAccess, JsonSerializable from the public part of FileInfo 2014-01-13 15:13:45 +01:00
Robin Appelman
617acbd6f9 Add a FileInfo class which holds all info of a file and return that from getFileInfo, getDirectoryContent and search 2014-01-13 14:28:49 +01:00
Vincent Petry
4faba49f0a Fix calculated folder size to use unencrypted size
The encrypted size was used when calculating folder sizes.
This fix now also sums up the unencrypted size and shows that one when
available.
2014-01-09 17:47:50 +01:00
Vincent Petry
f642ad3961 Prevent deleting storage root
Storage mount points are not deletable, so make sure that the unlink
operation and its hooks aren't run in such cases.

Note that some storages might recursively delete their contents when
calling unlink on their root. This fix prevents that as well.
2014-01-08 13:17:36 +01:00
Vincent Petry
5be4af9f51 Now also preventing to override "files" dir size with -1
Fixes #6526
2014-01-07 22:34:01 +01:00
Robin Appelman
25370fcb82 Return SPACE_UNKNOWN if disk_free_space is disabled when getting the free space on a local storage 2014-01-02 13:19:10 +01:00