Skip to content
This repository has been archived by the owner on Nov 25, 2020. It is now read-only.

Commit

Permalink
Do not compute size recursively for remote wrappers, directly send de…
Browse files Browse the repository at this point in the history
…lete/move to task if folder or many files.
  • Loading branch information
cdujeu committed Jun 25, 2016
1 parent d6d2462 commit ce47628
Showing 1 changed file with 20 additions and 9 deletions.
29 changes: 20 additions & 9 deletions core/src/plugins/access.fs/FsAccessDriver.php
Expand Up @@ -154,7 +154,9 @@ public function getResourceUrl($path)
*/
public function directoryUsage(AJXP_Node $node){

//$dir = (isSet($repositoryResolvedOptions["PATH"]) ? $repositoryResolvedOptions["PATH"] : $this->repository->getOption("PATH")).$directoryPath;
if(MetaStreamWrapper::wrapperIsRemote($node->getUrl())){
return $this->recursiveDirUsageByListing($node->getUrl());
}
$dir = $node->getRealFile();
$size = -1;
if ( ( PHP_OS == "WIN32" || PHP_OS == "WINNT" || PHP_OS == "Windows") && class_exists("COM") ) {
Expand Down Expand Up @@ -845,13 +847,17 @@ public function switchAction(ServerRequestInterface &$request, ResponseInterface
$nodes = $selection->buildNodes();
$bgSizeThreshold = 1*1024*1024;
$bgWorkerThreshold = 80*1024*1024;
foreach($nodes as $node){
$size += $node->getSizeRecursive();
if(!MetaStreamWrapper::wrapperIsRemote($selection->currentBaseUrl())){
foreach($nodes as $node){
$size += $node->getSizeRecursive();
}
}else if(!$selection->isUnique() || !$selection->getUniqueNode()->isLeaf()){
$size = -1;
}
$taskId = $request->getAttribute("pydio-task-id");
if($taskId === null && ($size > $bgSizeThreshold)){
if($taskId === null && ($size === -1 || $size > $bgSizeThreshold)){
$task = TaskService::actionAsTask($ctx, $action, $httpVars);
if($size > $bgWorkerThreshold){
if($size === -1 || $size > $bgWorkerThreshold){
$task->setSchedule(new Schedule(Schedule::TYPE_ONCE_DEFER));
}
$response = TaskService::getInstance()->enqueueTask($task, $request, $response);
Expand Down Expand Up @@ -886,13 +892,17 @@ public function switchAction(ServerRequestInterface &$request, ResponseInterface
$nodes = $selection->buildNodes();
$bgSizeThreshold = 10*1024*1024;
$bgWorkerThreshold = 80*1024*1024;
foreach($nodes as $node){
$size += $node->getSizeRecursive();
if(!MetaStreamWrapper::wrapperIsRemote($selection->currentBaseUrl())){
foreach($nodes as $node){
$size += $node->getSizeRecursive();
}
}else if(!$selection->isUnique() || !$selection->getUniqueNode()->isLeaf()){
$size = -1;
}
if($taskId === null && ($size > $bgSizeThreshold)){
if($taskId === null && ($size === -1 || $size > $bgSizeThreshold)){
$task = TaskService::actionAsTask($ctx, $action, $httpVars);
$task->setFlags(Task::FLAG_STOPPABLE);
if($size > $bgWorkerThreshold){
if($size === -1 || $size > $bgWorkerThreshold){
$task->setSchedule(new Schedule(Schedule::TYPE_ONCE_DEFER));
}
$response = TaskService::getInstance()->enqueueTask($task, $request, $response);
Expand Down Expand Up @@ -2059,6 +2069,7 @@ public function delete(UserSelection $selection, &$logMessages, $taskId = null)
$selectedNodes = $selection->buildNodes();
foreach ($selectedNodes as $selectedNode) {

$selectedNode->loadNodeInfo();
$fileUrl = $selectedNode->getUrl();
$filePath = $selectedNode->getPath();

Expand Down

0 comments on commit ce47628

Please sign in to comment.