summaryrefslogtreecommitdiffstats
path: root/lib/files
diff options
context:
space:
mode:
authorThomas Mueller <thomas.mueller@tmit.eu>2013-02-20 10:55:20 +0100
committerThomas Mueller <thomas.mueller@tmit.eu>2013-02-20 10:55:20 +0100
commit5062ae250b767867609f64c29ab4cde65f022b75 (patch)
treeba624bec5f2470fbaadb4b281c57386210e5708e /lib/files
parent2675290325dc6a67f6719febe5ed0a546bd7a32a (diff)
parent38782036798dbe0a34995a3fca0aa92583cb9099 (diff)
downloadnextcloud-server-5062ae250b767867609f64c29ab4cde65f022b75.tar.gz
nextcloud-server-5062ae250b767867609f64c29ab4cde65f022b75.zip
Merge branch 'master' into master-sqlserver
Conflicts: lib/files/cache/cache.php
Diffstat (limited to 'lib/files')
-rw-r--r--lib/files/cache/cache.php11
-rw-r--r--lib/files/filesystem.php30
-rw-r--r--lib/files/mount.php6
-rw-r--r--lib/files/storage/common.php9
4 files changed, 43 insertions, 13 deletions
diff --git a/lib/files/cache/cache.php b/lib/files/cache/cache.php
index 77fc91b9379..01e6e788263 100644
--- a/lib/files/cache/cache.php
+++ b/lib/files/cache/cache.php
@@ -48,6 +48,9 @@ class Cache {
} else {
$this->storageId = $storage;
}
+ if (strlen($this->storageId) > 64) {
+ $this->storageId = md5($this->storageId);
+ }
$query = \OC_DB::prepare('SELECT `numeric_id` FROM `*PREFIX*storages` WHERE `id` = ?');
$result = $query->execute(array($this->storageId));
@@ -199,7 +202,7 @@ class Cache {
$valuesPlaceholder = array_fill(0, count($queryParts), '?');
$query = \OC_DB::prepare('INSERT INTO `*PREFIX*filecache`(' . implode(', ', $queryParts) . ')'
- .' VALUES(' . implode(', ', $valuesPlaceholder) . ')');
+ . ' VALUES(' . implode(', ', $valuesPlaceholder) . ')');
$query->execute($params);
return (int)\OC_DB::insertid('*PREFIX*filecache');
@@ -217,7 +220,7 @@ class Cache {
$params[] = $id;
$query = \OC_DB::prepare('UPDATE `*PREFIX*filecache` SET ' . implode(' = ?, ', $queryParts) . '=?'
- .' WHERE fileid = ?');
+ . ' WHERE fileid = ?');
$query->execute($params);
}
@@ -335,7 +338,7 @@ class Cache {
}
$query = \OC_DB::prepare('UPDATE `*PREFIX*filecache` SET `path` = ?, `path_hash` = ?, `parent` =?'
- .' WHERE `fileid` = ?');
+ . ' WHERE `fileid` = ?');
$query->execute(array($target, md5($target), $newParentId, $sourceId));
}
@@ -496,7 +499,7 @@ class Cache {
*/
public function getIncomplete() {
$query = \OC_DB::prepare('SELECT `path` FROM `*PREFIX*filecache`'
- .' WHERE `storage` = ? AND `size` = -1 ORDER BY `fileid` DESC LIMIT 1');
+ . ' WHERE `storage` = ? AND `size` = -1 ORDER BY `fileid` DESC LIMIT 1');
$result = $query->execute(array($this->numericId));
if ($row = $result->fetchRow()) {
return $row['path'];
diff --git a/lib/files/filesystem.php b/lib/files/filesystem.php
index f4530868077..875a9d6c5ee 100644
--- a/lib/files/filesystem.php
+++ b/lib/files/filesystem.php
@@ -29,6 +29,8 @@
namespace OC\Files;
+const FREE_SPACE_UNKNOWN = -2;
+
class Filesystem {
public static $loaded = false;
/**
@@ -215,9 +217,15 @@ class Filesystem {
if ($user == '') {
$user = \OC_User::getUser();
}
+ $parser = new \OC\ArrayParser();
+
// Load system mount points
- if (is_file(\OC::$SERVERROOT . '/config/mount.php')) {
- $mountConfig = include 'config/mount.php';
+ if (is_file(\OC::$SERVERROOT . '/config/mount.php') or is_file(\OC::$SERVERROOT . '/config/mount.json')) {
+ if(is_file(\OC::$SERVERROOT . '/config/mount.json')){
+ $mountConfig = json_decode(file_get_contents(\OC::$SERVERROOT . '/config/mount.json'), true);
+ }elseif(is_file(\OC::$SERVERROOT . '/config/mount.php')){
+ $mountConfig = $parser->parsePHP(file_get_contents(\OC::$SERVERROOT . '/config/mount.php'));
+ }
if (isset($mountConfig['global'])) {
foreach ($mountConfig['global'] as $mountPoint => $options) {
self::mount($options['class'], $options['options'], $mountPoint);
@@ -253,8 +261,12 @@ class Filesystem {
// Load personal mount points
$root = \OC_User::getHome($user);
self::mount('\OC\Files\Storage\Local', array('datadir' => $root), $user);
- if (is_file($root . '/mount.php')) {
- $mountConfig = include $root . '/mount.php';
+ if (is_file($root . '/mount.php') or is_file($root . '/mount.json')) {
+ if (is_file($root . '/mount.json')){
+ $mountConfig = json_decode(file_get_contents($root . '/mount.json'), true);
+ } elseif (is_file($root . '/mount.php')){
+ $mountConfig = $parser->parsePHP(file_get_contents($root . '/mount.php'));
+ }
if (isset($mountConfig['user'][$user])) {
foreach ($mountConfig['user'][$user] as $mountPoint => $options) {
self::mount($options['class'], $options['options'], $mountPoint);
@@ -613,11 +625,11 @@ class Filesystem {
}
/**
- * Get the owner for a file or folder
- *
- * @param string $path
- * @return string
- */
+ * Get the owner for a file or folder
+ *
+ * @param string $path
+ * @return string
+ */
public static function getOwner($path) {
return self::$defaultInstance->getOwner($path);
}
diff --git a/lib/files/mount.php b/lib/files/mount.php
index 74ee483b1be..6e99d8eabb4 100644
--- a/lib/files/mount.php
+++ b/lib/files/mount.php
@@ -93,6 +93,9 @@ class Mount {
$this->storage = $this->createStorage();
}
$this->storageId = $this->storage->getId();
+ if (strlen($this->storageId) > 64) {
+ $this->storageId = md5($this->storageId);
+ }
}
return $this->storageId;
}
@@ -177,6 +180,9 @@ class Mount {
* @return \OC\Files\Storage\Storage[]
*/
public static function findById($id) {
+ if (strlen($id) > 64) {
+ $id = md5($id);
+ }
$result = array();
foreach (self::$mounts as $mount) {
if ($mount->getStorageId() === $id) {
diff --git a/lib/files/storage/common.php b/lib/files/storage/common.php
index 4cdabf1c8a6..4e7a73e5d4a 100644
--- a/lib/files/storage/common.php
+++ b/lib/files/storage/common.php
@@ -301,4 +301,13 @@ abstract class Common implements \OC\Files\Storage\Storage {
}
return implode('/', $output);
}
+
+ /**
+ * get the free space in the storage
+ * @param $path
+ * return int
+ */
+ public function free_space($path){
+ return \OC\Files\FREE_SPACE_UNKNOWN;
+ }
}