获取存储库Alfresco Restful中的所有文件夹和文档

时间:2015-01-29 03:01:33

标签: java api rest alfresco

我正在学习Alfresco。我想在Repository with Restful API中获取所有文件夹和文档。我怎么能这样做?

3 个答案:

答案 0 :(得分:1)

我们可以使用alfresco的webscript创建restfull服务。为了理解webscript,您可以按照以下链接。

https://wiki.alfresco.com/wiki/Web_Scripts

为了创建下面列出文件夹的webscript,您需要创建该文件。

<强> 1.list-folders.get.desc.xml

<webscript>
  <shortname>Folder Listing Utility</shortname>
  <description>Java-backed implementation of listing folder contents
  </description>
  <url>/javadir/{folderpath}?verbose={verbose?}</url>
  <authentication>user</authentication>
</webscript>

<强> 2.list-folders.get.html.ftl

<html>
 <head>
  <title>Folder ${folder.displayPath}/${folder.name}</title>
  </head>
 <body>
   <p>Alfresco ${server.edition} Edition v${server.version} : dir</p>
  <p>Contents of folder ${folder.displayPath}/${folder.name}</p>
  <table>
   <#list folder.children as child>
   <tr>
   <td><#if child.isContainer>d</#if></td>
   <#if verbose>
     <td>${child.properties.modifier}</td>
     <td><#if child.isDocument>
       ${child.properties.content.size}</#if></td>
     <td>${child.properties.modified?date}</td>
   </#if>
   <td>${child.name}</td>
   </tr>
   </#list>
  </table>
 </body>
</html>

Web脚本描述指定包含令牌{folderpath}和{verbose?}的URI模板。 folderpath标记表示要列出的文件夹,详细URI参数指定是否需要详细列表。 HTML响应模板呈现指定文件夹的内容,同时考虑详细标记。它通过访问名为folder和verbose的Web脚本模型值来完成此操作。

您需要将以上文件放在路径下方。

公司主页&gt;数据字典&gt; Web脚本扩展&gt;有机

答案 1 :(得分:1)

Webscripts是构建自己的API的好方法,但在这种情况下,您应该可以使用Alfresco为您提供的构建API。

您可以使用REST API getDescendants调用来获取所有文件夹/文档。 有关详细信息,请参阅API规范:

https://wiki.alfresco.com/wiki/Repository_RESTful_API_Reference#Retrieve_tree_of_descendants_.28getDescendants.29

它返回树中已定义级别数的指定文件夹的后代对象列表。

GET /alfresco/service/api/node/{store_type}/{store_id}/{id}/descendants?types={types}&filter={filter?}&depth={depth?}

它从ID param标识的文件夹开始,并将可选参数应用于您的调用。这意味着您可以例如按类型(文档,文件夹等)过滤并定义要查询的深度。使用-1会返回所有级别。

答案 2 :(得分:1)

可以使用以下端点获取文档和文件夹列表。

GET /alfresco/service/slingshot/doclib/doclist/{type}/site/{site}/{container}

        type = documents or folders
        container = documentLibrary

参考:

浏览器可用的Webscripts:

http://server:port/alfresco/service/index/all

文档列表Webscript

http://server:port/alfresco/service/script/org/alfresco/slingshot/documentlibrary/doclist.get

Alfresco版本:社区v5.0.0