我正在学习Alfresco。我想在Repository with Restful API中获取所有文件夹和文档。我怎么能这样做?
答案 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规范:
它返回树中已定义级别数的指定文件夹的后代对象列表。
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