aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/files/command/scan.php1
-rw-r--r--apps/files/lib/helper.php8
-rwxr-xr-xapps/files_external/lib/config.php2
-rw-r--r--lib/private/files.php2
-rw-r--r--lib/private/files/storage/common.php9
-rw-r--r--lib/private/files/storage/local.php7
-rw-r--r--lib/private/files/storage/wrapper/wrapper.php8
-rw-r--r--lib/private/helper.php16
-rw-r--r--lib/public/files/storage.php11
-rw-r--r--lib/public/util.php7
10 files changed, 56 insertions, 15 deletions
diff --git a/apps/files/command/scan.php b/apps/files/command/scan.php
index 25ab70af362..f334f29a939 100644
--- a/apps/files/command/scan.php
+++ b/apps/files/command/scan.php
@@ -58,6 +58,7 @@ class Scan extends Command {
protected function execute(InputInterface $input, OutputInterface $output) {
if ($input->getOption('all')) {
+ \OC_App::loadApps('authentication');
$users = $this->userManager->search('');
} else {
$users = $input->getArgument('user_id');
diff --git a/apps/files/lib/helper.php b/apps/files/lib/helper.php
index 21d1f50e587..01fc65d76b7 100644
--- a/apps/files/lib/helper.php
+++ b/apps/files/lib/helper.php
@@ -5,14 +5,14 @@ namespace OCA\Files;
class Helper
{
public static function buildFileStorageStatistics($dir) {
+ // information about storage capacities
+ $storageInfo = \OC_Helper::getStorageInfo($dir);
+
$l = new \OC_L10N('files');
- $maxUploadFilesize = \OCP\Util::maxUploadFilesize($dir);
+ $maxUploadFilesize = \OCP\Util::maxUploadFilesize($dir, $storageInfo['free']);
$maxHumanFilesize = \OCP\Util::humanFileSize($maxUploadFilesize);
$maxHumanFilesize = $l->t('Upload') . ' max. ' . $maxHumanFilesize;
- // information about storage capacities
- $storageInfo = \OC_Helper::getStorageInfo($dir);
-
return array('uploadMaxFilesize' => $maxUploadFilesize,
'maxHumanFilesize' => $maxHumanFilesize,
'freeSpace' => $storageInfo['free'],
diff --git a/apps/files_external/lib/config.php b/apps/files_external/lib/config.php
index 48fc4dfe46e..8c85c5fbde8 100755
--- a/apps/files_external/lib/config.php
+++ b/apps/files_external/lib/config.php
@@ -69,7 +69,7 @@ class OC_Mount_Config {
if(OC_Mount_Config::checkphpftp()) $backends['\OC\Files\Storage\FTP']=array(
'backend' => 'FTP',
'configuration' => array(
- 'host' => 'URL',
+ 'host' => 'Hostname',
'user' => 'Username',
'password' => '*Password',
'root' => '&Root',
diff --git a/lib/private/files.php b/lib/private/files.php
index 8ce632013cf..24fca4a5df3 100644
--- a/lib/private/files.php
+++ b/lib/private/files.php
@@ -131,7 +131,7 @@ class OC_Files {
}
if ($xsendfile) {
list($storage) = \OC\Files\Filesystem::resolvePath(\OC\Files\Filesystem::getView()->getAbsolutePath($filename));
- if ($storage instanceof \OC\Files\Storage\Local) {
+ if ($storage->isLocal()) {
self::addSendfileHeader(\OC\Files\Filesystem::getLocalFile($filename));
}
}
diff --git a/lib/private/files/storage/common.php b/lib/private/files/storage/common.php
index 678bf419023..55b1471593d 100644
--- a/lib/private/files/storage/common.php
+++ b/lib/private/files/storage/common.php
@@ -370,4 +370,13 @@ abstract class Common implements \OC\Files\Storage\Storage {
public function free_space($path) {
return \OC\Files\SPACE_UNKNOWN;
}
+
+ /**
+ * {@inheritdoc}
+ */
+ public function isLocal() {
+ // the common implementation returns a temporary file by
+ // default, which is not local
+ return false;
+ }
}
diff --git a/lib/private/files/storage/local.php b/lib/private/files/storage/local.php
index db3c6bfca3a..fa0788f2377 100644
--- a/lib/private/files/storage/local.php
+++ b/lib/private/files/storage/local.php
@@ -298,5 +298,12 @@ if (\OC_Util::runningOnWindows()) {
public function hasUpdated($path, $time) {
return $this->filemtime($path) > $time;
}
+
+ /**
+ * {@inheritdoc}
+ */
+ public function isLocal() {
+ return true;
+ }
}
}
diff --git a/lib/private/files/storage/wrapper/wrapper.php b/lib/private/files/storage/wrapper/wrapper.php
index f9adda80314..11ea9f71da7 100644
--- a/lib/private/files/storage/wrapper/wrapper.php
+++ b/lib/private/files/storage/wrapper/wrapper.php
@@ -432,4 +432,12 @@ class Wrapper implements \OC\Files\Storage\Storage {
public function test() {
return $this->storage->test();
}
+
+ /**
+ * Returns the wrapped storage's value for isLocal()
+ * @return bool wrapped storage's isLocal() value
+ */
+ public function isLocal() {
+ return $this->storage->isLocal();
+ }
}
diff --git a/lib/private/helper.php b/lib/private/helper.php
index 580f81acc62..58cb1b88d66 100644
--- a/lib/private/helper.php
+++ b/lib/private/helper.php
@@ -804,18 +804,22 @@ class OC_Helper {
/**
* @brief calculates the maximum upload size respecting system settings, free space and user quota
*
- * @param $dir the current folder where the user currently operates
- * @return number of bytes representing
+ * @param string $dir the current folder where the user currently operates
+ * @param int $freeSpace the number of bytes free on the storage holding $dir, if not set this will be received from the storage directly
+ * @return int number of bytes representing
*/
- public static function maxUploadFilesize($dir) {
- return min(self::freeSpace($dir), self::uploadLimit());
+ public static function maxUploadFilesize($dir, $freeSpace = null) {
+ if (is_null($freeSpace)){
+ $freeSpace = self::freeSpace($dir);
+ }
+ return min($freeSpace, self::uploadLimit());
}
/**
* Calculate free space left within user quota
*
- * @param $dir the current folder where the user currently operates
- * @return number of bytes representing
+ * @param string $dir the current folder where the user currently operates
+ * @return int number of bytes representing
*/
public static function freeSpace($dir) {
$freeSpace = \OC\Files\Filesystem::free_space($dir);
diff --git a/lib/public/files/storage.php b/lib/public/files/storage.php
index 194b42a6481..fe30f8f50af 100644
--- a/lib/public/files/storage.php
+++ b/lib/public/files/storage.php
@@ -315,4 +315,15 @@ interface Storage {
* @return string
*/
public function getETag($path);
+
+ /**
+ * Returns whether the storage is local, which means that files
+ * are stored on the local filesystem instead of remotely.
+ * Calling getLocalFile() for local storages should always
+ * return the local files, whereas for non-local storages
+ * it might return a temporary file.
+ *
+ * @return bool true if the files are stored locally, false otherwise
+ */
+ public function isLocal();
}
diff --git a/lib/public/util.php b/lib/public/util.php
index d8497e29cfc..4611e5e2650 100644
--- a/lib/public/util.php
+++ b/lib/public/util.php
@@ -460,11 +460,12 @@ class Util {
/**
* calculates the maximum upload size respecting system settings, free space and user quota
*
- * @param $dir the current folder where the user currently operates
+ * @param string $dir the current folder where the user currently operates
+ * @param int $free the number of bytes free on the storage holding $dir, if not set this will be received from the storage directly
* @return number of bytes representing
*/
- public static function maxUploadFilesize($dir) {
- return \OC_Helper::maxUploadFilesize($dir);
+ public static function maxUploadFilesize($dir, $free = null) {
+ return \OC_Helper::maxUploadFilesize($dir, $free);
}
/**