Cache: add function to get storage id and internal path of a file by id
This commit is contained in:
parent
8c42e2de8c
commit
9e2a066c7b
|
@ -494,4 +494,28 @@ class Cache {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get the storage id of the storage for a file and the internal path of the file
|
||||||
|
*
|
||||||
|
* @return array, first element holding the storage id, second the path
|
||||||
|
*/
|
||||||
|
static public function getById($id) {
|
||||||
|
$query = \OC_DB::prepare('SELECT `storage`, `path` FROM `*PREFIX*filecache` WHERE `fileid` = ?');
|
||||||
|
$result = $query->execute(array($id));
|
||||||
|
if ($row = $result->fetchRow()) {
|
||||||
|
$numericId = $row['storage'];
|
||||||
|
$path = $row['path'];
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
$query = \OC_DB::prepare('SELECT `id` FROM `*PREFIX*storages` WHERE `numeric_id` = ?');
|
||||||
|
$result = $query->execute(array($numericId));
|
||||||
|
if ($row = $result->fetchRow()) {
|
||||||
|
return array($row['id'], $path);
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -197,6 +197,13 @@ class Cache extends \PHPUnit_Framework_TestCase {
|
||||||
$this->assertEquals(array(), $this->cache->getFolderContents('foo'));
|
$this->assertEquals(array(), $this->cache->getFolderContents('foo'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function testGetById() {
|
||||||
|
$storageId = $this->storage->getId();
|
||||||
|
$data = array('size' => 1000, 'mtime' => 20, 'mimetype' => 'foo/file');
|
||||||
|
$id = $this->cache->put('foo', $data);
|
||||||
|
$this->assertEquals(array($storageId, 'foo'), \OC\Files\Cache\Cache::getById($id));
|
||||||
|
}
|
||||||
|
|
||||||
public function tearDown() {
|
public function tearDown() {
|
||||||
$this->cache->clear();
|
$this->cache->clear();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue