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) {
|
||||
$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'),
|
||||
'uploadMaxFilesize' => $maxUploadFilesize,
|
||||
'maxHumanFilesize' => $maxHumanFilesize)));
|
||||
|
|
|
@ -229,11 +229,6 @@ class AmazonS3 extends \OC\Files\Storage\Common {
|
|||
return false;
|
||||
}
|
||||
|
||||
public function free_space($path) {
|
||||
// Infinite?
|
||||
return false;
|
||||
}
|
||||
|
||||
public function touch($path, $mtime = null) {
|
||||
if (is_null($mtime)) {
|
||||
$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) {
|
||||
try {
|
||||
if (!is_null($mtime)) return false;
|
||||
|
|
|
@ -76,10 +76,6 @@ abstract class StreamWrapper extends \OC\Files\Storage\Common{
|
|||
return fopen($this->constructUrl($path), $mode);
|
||||
}
|
||||
|
||||
public function free_space($path) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public function touch($path, $mtime=null) {
|
||||
$this->init();
|
||||
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) {
|
||||
$this->init();
|
||||
$obj=$this->getObject($path);
|
||||
|
|
|
@ -222,7 +222,7 @@ class DAV extends \OC\Files\Storage\Common{
|
|||
return 0;
|
||||
}
|
||||
} catch(\Exception $e) {
|
||||
return 0;
|
||||
return \OC\Files\FREE_SPACE_UNKNOWN;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -29,6 +29,8 @@
|
|||
|
||||
namespace OC\Files;
|
||||
|
||||
const FREE_SPACE_UNKNOWN = -2;
|
||||
|
||||
class Filesystem {
|
||||
public static $loaded = false;
|
||||
/**
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -762,9 +762,13 @@ class OC_Helper {
|
|||
$maxUploadFilesize = min($upload_max_filesize, $post_max_size);
|
||||
|
||||
$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