Introduce Storage::getData() to allow storage implementations more control over the data array
This commit is contained in:
parent
3959f8ac4e
commit
92b60e36de
|
@ -109,17 +109,10 @@ class Scanner extends BasicEmitter {
|
|||
\OCP\Util::writeLog('OC\Files\Cache\Scanner', "!!! Path '$path' is not accessible or present !!!", \OCP\Util::DEBUG);
|
||||
return null;
|
||||
}
|
||||
$data = array();
|
||||
$data['mimetype'] = $this->storage->getMimeType($path);
|
||||
$data['mtime'] = $this->storage->filemtime($path);
|
||||
if ($data['mimetype'] == 'httpd/unix-directory') {
|
||||
$data['size'] = -1; //unknown
|
||||
} else {
|
||||
$data['size'] = $this->storage->filesize($path);
|
||||
}
|
||||
$data['etag'] = $this->storage->getETag($path);
|
||||
$data['storage_mtime'] = $data['mtime'];
|
||||
|
||||
$data = $this->storage->getData($path);
|
||||
$data['permissions'] = $permissions;
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
|
|
|
@ -580,4 +580,21 @@ abstract class Common implements Storage {
|
|||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
public function getData($path) {
|
||||
$data = [];
|
||||
$data['mimetype'] = $this->getMimeType($path);
|
||||
$data['mtime'] = $this->filemtime($path);
|
||||
if ($data['mimetype'] == 'httpd/unix-directory') {
|
||||
$data['size'] = -1; //unknown
|
||||
} else {
|
||||
$data['size'] = $this->filesize($path);
|
||||
}
|
||||
$data['etag'] = $this->getETag($path);
|
||||
$data['storage_mtime'] = $data['mtime'];
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -70,4 +70,10 @@ interface Storage extends \OCP\Files\Storage {
|
|||
*/
|
||||
public function getStorageCache();
|
||||
|
||||
/**
|
||||
* @param $path
|
||||
* @return array
|
||||
*/
|
||||
public function getData($path);
|
||||
|
||||
}
|
||||
|
|
|
@ -110,6 +110,29 @@ class Encryption extends Wrapper {
|
|||
return $this->storage->filesize($path);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $path
|
||||
* @return array
|
||||
*/
|
||||
public function getData($path) {
|
||||
$data = $this->storage->getData($path);
|
||||
$fullPath = $this->getFullPath($path);
|
||||
|
||||
if (isset($this->unencryptedSize[$fullPath])) {
|
||||
$size = $this->unencryptedSize[$fullPath];
|
||||
|
||||
$data['encrypted'] = true;
|
||||
$data['size'] = $size;
|
||||
} else {
|
||||
$info = $this->getCache()->get($path);
|
||||
if (isset($info['fileid']) && $info['encrypted']) {
|
||||
$data['encrypted'] = true;
|
||||
$data['size'] = $info['size'];
|
||||
}
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
/**
|
||||
* see http://php.net/manual/en/function.file_get_contents.php
|
||||
*
|
||||
|
|
|
@ -525,4 +525,12 @@ class Wrapper implements \OC\Files\Storage\Storage {
|
|||
public function moveFromStorage(\OCP\Files\Storage $sourceStorage, $sourceInternalPath, $targetInternalPath) {
|
||||
return $this->storage->moveFromStorage($sourceStorage, $sourceInternalPath, $targetInternalPath);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $path
|
||||
* @return array
|
||||
*/
|
||||
public function getData($path) {
|
||||
return $this->storage->getData($path);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue