Alfresco Webscript, чтобы получить список всех файлов и папок с их размером

Вам нужен js-файл на открытом воздухе, чтобы получить список всех папок и файлов, рекурсивно и по размеру.

2 ответа

CMIS Query:

select cmis:objectId, cmis:name, cmis:contentStreamLength 
from cmis:document 
where cmis:contentStreamLength>0 
order by cmis:contentStreamLength desc
  • HTTP GET:

    http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.1/browser/
      ?cmisselector=query
      &succinct=true
      &q=select cmis:objectId, cmis:name, cmis:contentStreamLength from cmis:document where cmis:contentStreamLength>0 order by cmis:contentStreamLength desc
    
  • JavaScript:

    Используйте поиск корневого объекта:

    search - org.alfresco.repo.jscript.Search - корневой объект, обеспечивающий доступ к различным интерфейсам поиска Alfresco, таким как результаты FTS-Alfresco, Lucene, XPath и Saved Search.

    var rs=search.query({
        query:"select * from cmis:document where cmis:contentStreamLength>0 order by cmis:contentStreamLength desc",
        language:"cmis-alfresco"         
    });
    
    for (var r in rs){
        logger.log(rs[r].parent.nodeRef.id+"/"+rs[r].nodeRef.id+"\t"+rs[r].parent.name+"/"+rs[r].name+"\t"+rs[r].size);
    }
    

Да, это возможно. Вы можете получить все папки, подпапки и все файлы, используя javascript репозитория. Пожалуйста, попробуйте этот код дать правильные значения пути

var path="Data Dictionary/***";
var documentLibrary = companyhome.childByNamePath("path");

var children = documentLibrary.children;

traverse(children);

function traverse(nodes){
  for each(var node in nodes) {
    if (node.isContainer){
      logger.log(node.name + " is a folder, traversing down");
      traverse(node.children);
    }else {
      logger.log(node.name ); 
        logger.log(node.size); 
    }
  }
}
Другие вопросы по тегам