Merge pull request #24812 from owncloud/fkammer-enhancement-cache-folder-gc-ttl

Make chunk cache ttl configurable
This commit is contained in:
Vincent Petry 2016-05-25 11:07:31 +02:00
commit b5f455f5ac
2 changed files with 17 additions and 1 deletions

View File

@ -976,6 +976,14 @@ $CONFIG = array(
*/ */
'cache_path' => '', 'cache_path' => '',
/**
* TTL of chunks located in the cache folder before they're removed by
* garbage collection (in seconds). Increase this value if users have
* issues uploading very large files via the ownCloud Client as upload isn't
* completed within one day.
*/
'cache_chunk_gc_ttl' => 86400, // 60*60*24 = 1 day
/** /**
* Using Object Store with ownCloud * Using Object Store with ownCloud
*/ */

View File

@ -31,6 +31,13 @@ class OC_FileChunking {
protected $info; protected $info;
protected $cache; protected $cache;
/**
* TTL of chunks
*
* @var int
*/
protected $ttl;
static public function decodeName($name) { static public function decodeName($name) {
preg_match('/(?P<name>.*)-chunking-(?P<transferid>\d+)-(?P<chunkcount>\d+)-(?P<index>\d+)/', $name, $matches); preg_match('/(?P<name>.*)-chunking-(?P<transferid>\d+)-(?P<chunkcount>\d+)-(?P<index>\d+)/', $name, $matches);
return $matches; return $matches;
@ -41,6 +48,7 @@ class OC_FileChunking {
*/ */
public function __construct($info) { public function __construct($info) {
$this->info = $info; $this->info = $info;
$this->ttl = \OC::$server->getConfig()->getSystemValue('cache_chunk_gc_ttl', 86400);
} }
public function getPrefix() { public function getPrefix() {
@ -67,7 +75,7 @@ class OC_FileChunking {
public function store($index, $data) { public function store($index, $data) {
$cache = $this->getCache(); $cache = $this->getCache();
$name = $this->getPrefix().$index; $name = $this->getPrefix().$index;
$cache->set($name, $data); $cache->set($name, $data, $this->ttl);
return $cache->size($name); return $cache->size($name);
} }