Give storage backends the option to define having no known free space
When this is the case only the configured max upload size is taking into account for uploading
This commit is contained in:
parent
425d41aaf9
commit
d96146a017
|
@ -48,7 +48,7 @@ $totalSize = 0;
|
||||||
foreach ($files['size'] as $size) {
|
foreach ($files['size'] as $size) {
|
||||||
$totalSize += $size;
|
$totalSize += $size;
|
||||||
}
|
}
|
||||||
if ($totalSize > \OC\Files\Filesystem::free_space($dir)) {
|
if ($totalSize > $maxUploadFilesize) {
|
||||||
OCP\JSON::error(array('data' => array('message' => $l->t('Not enough storage available'),
|
OCP\JSON::error(array('data' => array('message' => $l->t('Not enough storage available'),
|
||||||
'uploadMaxFilesize' => $maxUploadFilesize,
|
'uploadMaxFilesize' => $maxUploadFilesize,
|
||||||
'maxHumanFilesize' => $maxHumanFilesize)));
|
'maxHumanFilesize' => $maxHumanFilesize)));
|
||||||
|
|
|
@ -229,11 +229,6 @@ class AmazonS3 extends \OC\Files\Storage\Common {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function free_space($path) {
|
|
||||||
// Infinite?
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function touch($path, $mtime = null) {
|
public function touch($path, $mtime = null) {
|
||||||
if (is_null($mtime)) {
|
if (is_null($mtime)) {
|
||||||
$mtime = time();
|
$mtime = time();
|
||||||
|
|
|
@ -241,10 +241,6 @@ class SFTP extends \OC\Files\Storage\Common {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function free_space($path) {
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function touch($path, $mtime=null) {
|
public function touch($path, $mtime=null) {
|
||||||
try {
|
try {
|
||||||
if (!is_null($mtime)) return false;
|
if (!is_null($mtime)) return false;
|
||||||
|
|
|
@ -76,10 +76,6 @@ abstract class StreamWrapper extends \OC\Files\Storage\Common{
|
||||||
return fopen($this->constructUrl($path), $mode);
|
return fopen($this->constructUrl($path), $mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function free_space($path) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function touch($path, $mtime=null) {
|
public function touch($path, $mtime=null) {
|
||||||
$this->init();
|
$this->init();
|
||||||
if(is_null($mtime)) {
|
if(is_null($mtime)) {
|
||||||
|
|
|
@ -478,10 +478,6 @@ class SWIFT extends \OC\Files\Storage\Common{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function free_space($path) {
|
|
||||||
return 1024*1024*1024*8;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function touch($path, $mtime=null) {
|
public function touch($path, $mtime=null) {
|
||||||
$this->init();
|
$this->init();
|
||||||
$obj=$this->getObject($path);
|
$obj=$this->getObject($path);
|
||||||
|
|
|
@ -222,7 +222,7 @@ class DAV extends \OC\Files\Storage\Common{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
} catch(\Exception $e) {
|
} catch(\Exception $e) {
|
||||||
return 0;
|
return \OC\Files\FREE_SPACE_UNKNOWN;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -29,6 +29,8 @@
|
||||||
|
|
||||||
namespace OC\Files;
|
namespace OC\Files;
|
||||||
|
|
||||||
|
const FREE_SPACE_UNKNOWN = -2;
|
||||||
|
|
||||||
class Filesystem {
|
class Filesystem {
|
||||||
public static $loaded = false;
|
public static $loaded = false;
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -301,4 +301,13 @@ abstract class Common implements \OC\Files\Storage\Storage {
|
||||||
}
|
}
|
||||||
return implode('/', $output);
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -762,9 +762,13 @@ class OC_Helper {
|
||||||
$maxUploadFilesize = min($upload_max_filesize, $post_max_size);
|
$maxUploadFilesize = min($upload_max_filesize, $post_max_size);
|
||||||
|
|
||||||
$freeSpace = \OC\Files\Filesystem::free_space($dir);
|
$freeSpace = \OC\Files\Filesystem::free_space($dir);
|
||||||
$freeSpace = max($freeSpace, 0);
|
if($freeSpace !== \OC\Files\FREE_SPACE_UNKNOWN){
|
||||||
|
$freeSpace = max($freeSpace, 0);
|
||||||
|
|
||||||
return min($maxUploadFilesize, $freeSpace);
|
return min($maxUploadFilesize, $freeSpace);
|
||||||
|
} else {
|
||||||
|
return $maxUploadFilesize;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue