Commit graph

1089 commits

Author SHA1 Message Date
Björn Schießle
4f438eee56
preserve information if it is a rename operation or not 2016-04-20 12:17:15 +02:00
C. Montero Luque
ed1874ee97 Merge pull request #23561 from owncloud/background-scan-unscanned
handle completely unscanned storages in the background scanner
2016-04-14 15:23:42 -04:00
Roeland Jago Douma
5cd8382d39
Add lazyRootFolder 2016-04-13 11:23:02 +02:00
Roeland Douma
4ddf9f98f1 Don't calculate permissions twice (#23917)
There is no need to calculate the permissions twice.
Saves some is_dir and file_exists calls.
2016-04-12 09:45:59 +02:00
Thomas Müller
e2c4a0cecd Merge pull request #23860 from owncloud/followup-23304-opening-empty-file
Correctly return an empty string for empty files
2016-04-11 10:08:24 +02:00
Joas Schilling
178ad23d80
Correctly return an empty string for empty files 2016-04-08 14:50:42 +02:00
Stefan Weil
b1a856d7b7 lib: Fix typos (found by codespell)
Signed-off-by: Stefan Weil <sw@weilnetz.de>
2016-04-07 19:51:27 +02:00
Morris Jobke
6ecd1d9e86 Fix PHP memory leak in file_get_contents()
* ref https://bugs.php.net/bug.php?id=61961

* ref https://github.com/owncloud/core/issues/20261#issuecomment-180000256

* code is based on the proposal of @chriseqipe

* fixes #20261
2016-04-04 16:48:09 +02:00
Bjoern Schiessle
e4b451491b make sure that we always remove the file again from the cache after the version was created 2016-03-31 21:52:23 +02:00
Frank Karlitschek
f5709b511b Merge pull request #23445 from owncloud/enc_small_improvement
small performance improvement: no need to calculate the header size
2016-03-31 20:38:42 +02:00
Frank Karlitschek
2bff34be56 Merge pull request #23707 from owncloud/make-sure-that-encrypted-version-is-set
Make sure that the encrypted version is set
2016-03-31 20:37:17 +02:00
Bjoern Schiessle
93ed965cbb fix creation of versions of encrypted files on external storages
in order to create a 1:1 copy of a file if a version gets created
we need to store this information on copyBetweenStorage(). This
allows us to by-pass the encryption wrapper if we read the source file.
2016-03-31 19:24:47 +02:00
Lukas Reschke
c427bf3b5d Make sure that the encrypted version is set
The code path called when using external storage with WebDAV is using `\OC\Files\Storage\Wrapper\Encryption::getMetaData` which did not contain the actual encrypted version inside the cache entry version. This lead to the following:

1. User uploaded a file
2. File is created and `\OC\Files\Storage\Wrapper\Encryption::getMetaData` is called. It has an empty `encryptedVersion` but sets `encrypted` to either `true` or `false`.
3. The call when updating the file cache will use the old version.
2016-03-31 18:06:37 +02:00
C. Montero Luque
4123185d2d Merge branch 'master' into background-scan-unscanned 2016-03-25 13:14:35 +01:00
Thomas Müller
b966fc2233 Merge pull request #23545 from owncloud/issue-17144-lock-mount-point-on-removal
Lock the mountpoint while removing
2016-03-24 22:43:46 +01:00
Robin Appelman
6485d95c5a handle completely unscanned storages in the background scanner 2016-03-24 17:16:21 +01:00
Jörn Friedrich Dreyer
c3508df09a add missing var 2016-03-24 12:49:43 +01:00
Joas Schilling
3d9863febc Lock the mountpoint while removing 2016-03-24 11:50:17 +01:00
Thomas Müller
ea07a428f4 Merge pull request #22506 from owncloud/node-get-from-cache
Query the cache when checking if a node exists
2016-03-23 13:08:17 +01:00
Bjoern Schiessle
7b9d53b7ea no need to calculate the header size, if the first block contain a header we already know the size 2016-03-21 15:47:24 +01:00
Robin Appelman
0b0b3253bb properly use fileinfo objects 2016-03-21 14:20:33 +01:00
Robin Appelman
6031ae1ad4 improve reuse in getUserFolder 2016-03-21 13:53:33 +01:00
Robin Appelman
5e6c905a14 pass the fileinfo to the node if available 2016-03-21 13:53:33 +01:00
Robin Appelman
a98b038300 Query the cache when checking if a node exists 2016-03-21 13:53:33 +01:00
Joas Schilling
e86fd945dd Fix doc issue of cache wrapper 2016-03-21 10:45:53 +01:00
Lukas Reschke
676041ba7e Ensure that stored version is at least 1 for cross-storage copy
In case of a move operation from an unencrypted to an encrypted
storage the old encrypted version would stay with "0" while the
correct value would be "1". Thus we manually set the value to "1"
for those cases.

See also https://github.com/owncloud/core/issues/23078
2016-03-16 10:36:15 +01:00
Thomas Müller
0f6ea9fd29 Merge pull request #23039 from owncloud/invalid-share-storage
dont break when there is an invalid share
2016-03-15 12:15:05 +01:00
Lukas Reschke
d43051f7de Verify the getResponse returns a ResponseInterface
Can also return `null` as per PHPDoc. Regression added by 97f5c095f4

Fixes https://github.com/owncloud/core/issues/23145
2016-03-12 22:45:07 +01:00
Robin Appelman
a8db587b1f move failedstorage to core 2016-03-11 13:15:45 +01:00
Vincent Petry
e5a107cc45 Fix share mounting recursion 2016-03-08 14:46:42 +01:00
Thomas Müller
19dc02b8e0 Merge pull request #22900 from owncloud/diskfreespace-filesworkaround
Fix call to disk_free_space when a file is provided
2016-03-07 15:07:31 +01:00
Thomas Müller
fa436b5b0c Merge pull request #22812 from owncloud/node-lock
Add locking to the node api
2016-03-07 14:43:49 +01:00
Vincent Petry
89881ed511 Fix call to disk_free_space when a file is provided
In the case of shared files, we have to call free_space() on the file
name. This has the side-effect that when uploading to a local storage
without quota set, it will call disk_free_space with the file name,
which fails.

This fix uses the parent folder in case the given path is a file.
2016-03-07 11:01:24 +01:00
Thomas Müller
b56dbd0607 Merge pull request #22816 from owncloud/external-unavailable-recheck
allow availability recheck for external storages
2016-03-04 15:29:17 +01:00
Robin Appelman
6990100e6e allow availability recheck for external storages 2016-03-03 14:19:34 +01:00
Lukas Reschke
72c8187cbb Keep "encryptedVersion" when calling \OC\Files\View::copy
When calling `\OC\Files\View::copy` we should also keep the version to ensure that the file will always have the correct version attached and can be successfully decrypted.

To test this the following steps are necessary (from https://github.com/owncloud/core/issues/22781#issuecomment-191328982):

1. setup a new ownCloud 9.0 beta2
2. enable encryption
2. upload a docx (5.7MB large)
3. upload the same file again and overwrite the existing file
4. I can download the original file and the first version
5. I restore the first version
6. restored version can no longer be downloaded with the error described above

The manual cache operation in `\OCA\Files_Versions\Storage` is unfortunately necessary since `\OCA\Files_Versions\Storage::copyFileContents` is not using `\OCP\Files\Storage::moveFromStorage` in the case when an object storage is used. Due to the workaround added in 54cea05271 the stream is directly copied and thus bypassing the FS.
2016-03-03 14:15:36 +01:00
Robin Appelman
02635c6f2f Add locking to the node api 2016-03-03 13:47:00 +01:00
Lukas Reschke
c353d51810 Remove Scrutinizer Auto Fixer 2016-03-01 17:48:23 +01:00
Lukas Reschke
c430f5ba53 Map Maci 2016-03-01 17:45:05 +01:00
Lukas Reschke
933f60e314 Update author information
Probably nice for the people that contributed to 9.0 to see themselves in the AUTHORS file :)
2016-03-01 17:25:15 +01:00
Thomas Müller
da18d04b38 Merge pull request #22733 from owncloud/size-propagation-new-file
fix size propagation for new files
2016-03-01 08:20:34 +01:00
Robin Appelman
003a686c1b ignore encryption keys for propagation 2016-02-29 17:47:09 +01:00
Robin Appelman
8c700cc99d fix size propagation for new files 2016-02-29 17:31:01 +01:00
Thomas Müller
914ac09aae Merge pull request #22636 from owncloud/fix-ssl-on-external-storages
Fix HTTPS support on external storages
2016-02-25 14:36:00 +01:00
Thomas Müller
efc966698f Merge pull request #22579 from owncloud/fix_broken_unencrypted_size
Heal unencrypted file sizes at download time (second approach)
2016-02-25 14:34:48 +01:00
Lukas Reschke
bf4a038535 Add proxy support to external storage
Otherwise debugging issues is a PITA
2016-02-24 19:48:47 +01:00
Bjoern Schiessle
834b51b83b recalculate unencrypted size if we assume that the size stored in the db is not correct 2016-02-23 15:09:46 +01:00
Morris Jobke
8c77fdef3e Avoids scanning the root storage
This check will skip the background scan for the root storage
because there is nothing in the root storage that isn't already
in another (mostly user-) storage.

Fixes #22501
2016-02-22 16:43:47 +01:00
Thomas Müller
fb38625741 Merge pull request #22518 from owncloud/checkdeletebeforecopyinsteadofrename
Check delete permission before attemping copy+delete
2016-02-19 16:06:55 +01:00
Vincent Petry
a9e0cfad8b Check delete permission before attemping copy+delete
Some move operations when cross-storage will be replaced by copy and
delete. Before attempting this, first check whether the source storage
has delete permissions.

This also prevents renaming system-wide external storages.
2016-02-19 12:59:10 +01:00