Alfresco 5.0 中递归获取某个文件夹下的所有内容文件名(by WebScripts)
Recursively get all content file names under a folder in Alfresco 5.0 (by WebScripts)
到目前为止,我找到了显示 children:
的脚本
http://localhost:8080/alfresco/service/slingshot/datalists/lists/site/MyFakeSite/documentLibrary
它 returns 我是这样的:
{
"container": "workspace:\/\/SpacesStore\/8ef98a58-18f0-4f27-9fee-709f81ca0a65",
"permissions":
{
"create": true
},
"datalists":
[
{
"name": "MyPicture.jpg",
"title": "My Awesome Picture File",
"description": "Legen - wait for it - dary!!!",
"nodeRef": "workspace://SpacesStore/54acabf9-bf6b-42f0-8b68-bbe9732b29b8",
"itemType": "",
"permissions":
{
"edit": true,
"delete": true
}
}
,
{
"name": "MyFirstLevelFolder",
"title": "FirstLevel",
"description": "",
"nodeRef": "workspace://SpacesStore/181a36df-2892-4669-aac0-d13ff90457bb",
"itemType": "",
"permissions":
{
"edit": true,
"delete": true
}
}
这是下一级 child 个节点的列表。
有什么办法可以:
递归显示所有节点??
次要的:
仅过滤内容 objects 以获取答案(文件夹已循环但未循环
返回)?
过滤除名称之外的所有元数据,这对我来说是唯一重要的吗?
您可以创建自己的自定义网络脚本,而不是根据您的要求在上面创建 specified.Customize 网络脚本。
下面link是在露天创建webscript的完全使用。
这是一个可能对您有所帮助的网络脚本示例。在露天创建此 webscript。
getChildren.get.desc.xml
<webscript>
<shortname>Get Documents</shortname>
<description>Display all Documents within Folder</description>
<url>/getChildren</url>
<format default="json">argument</format>
<authentication>user</authentication>
</webscript>
getChildren.get.js
function main()
{
var node = [];
var folderName = args["foldername"];
node = search.luceneSearch("PATH:\"/app:company_home/cm:"+folderName+"/*\"");
model.totalItems = node.length;
model.results = node;
} main();
getChildren.get.json.ftl
{
"totalItems": "${totalItems}",
"nodes":
[<#list results as node>
{
"name" : "${node.properties["cm:name"]?trim}"
}<#if (node_index + 1 < results?size)>,</#if>
</#list>
]
}
创建后在浏览器中触发此查询:
http://localhost:8080/alfresco/service/getChildren?foldername=Test_Folder
注意:这将仅获取公司主页中文件夹的子详细信息。根据您的要求更改 javascript 文件中的 lucene 查询。
到目前为止,我找到了显示 children:
的脚本http://localhost:8080/alfresco/service/slingshot/datalists/lists/site/MyFakeSite/documentLibrary
它 returns 我是这样的:
{
"container": "workspace:\/\/SpacesStore\/8ef98a58-18f0-4f27-9fee-709f81ca0a65",
"permissions":
{
"create": true
},
"datalists":
[
{
"name": "MyPicture.jpg",
"title": "My Awesome Picture File",
"description": "Legen - wait for it - dary!!!",
"nodeRef": "workspace://SpacesStore/54acabf9-bf6b-42f0-8b68-bbe9732b29b8",
"itemType": "",
"permissions":
{
"edit": true,
"delete": true
}
}
,
{
"name": "MyFirstLevelFolder",
"title": "FirstLevel",
"description": "",
"nodeRef": "workspace://SpacesStore/181a36df-2892-4669-aac0-d13ff90457bb",
"itemType": "",
"permissions":
{
"edit": true,
"delete": true
}
}
这是下一级 child 个节点的列表。
有什么办法可以:
递归显示所有节点??
次要的:
仅过滤内容 objects 以获取答案(文件夹已循环但未循环 返回)?
过滤除名称之外的所有元数据,这对我来说是唯一重要的吗?
您可以创建自己的自定义网络脚本,而不是根据您的要求在上面创建 specified.Customize 网络脚本。
下面link是在露天创建webscript的完全使用。
这是一个可能对您有所帮助的网络脚本示例。在露天创建此 webscript。
getChildren.get.desc.xml
<webscript>
<shortname>Get Documents</shortname>
<description>Display all Documents within Folder</description>
<url>/getChildren</url>
<format default="json">argument</format>
<authentication>user</authentication>
</webscript>
getChildren.get.js
function main()
{
var node = [];
var folderName = args["foldername"];
node = search.luceneSearch("PATH:\"/app:company_home/cm:"+folderName+"/*\"");
model.totalItems = node.length;
model.results = node;
} main();
getChildren.get.json.ftl
{
"totalItems": "${totalItems}",
"nodes":
[<#list results as node>
{
"name" : "${node.properties["cm:name"]?trim}"
}<#if (node_index + 1 < results?size)>,</#if>
</#list>
]
}
创建后在浏览器中触发此查询:
http://localhost:8080/alfresco/service/getChildren?foldername=Test_Folder
注意:这将仅获取公司主页中文件夹的子详细信息。根据您的要求更改 javascript 文件中的 lucene 查询。