我有一个Django站点和本地安装的Alfresco(社区版)。我的一个模型包含一个文件引用,该引用映射到Alfresco中的文档。视图应该有一个生成文件浏览器的字段,该文件浏览器可以访问Alfresco中的存储库结构,以便用户可以在任何版本中选择他们想要的任何文件。
我查看了CMSIlib模块,似乎提供了后端代码所需的所有交互。虽然下载文档似乎是clunky。
有很多Django file browsers,但似乎没有CMSIlib接口。
我是否需要自己编码或错过了什么?
版本为Alfresco Community v5.0.0 (d r99759-b2) schema 8022 Spring Surf and Spring WebScripts - v5.0.0
。
答案 0 :(得分:1)
#alfresco
IRC频道认为cmislib不是一个活跃的项目,而且它的问题只会偶尔发生一次......然而,RESTful api可能被认为是一个很好的选择。你的用例:
要使用RESTful api访问露天内容,您应该查询此webscript:/alfresco/d/<d|a>/<workspace>/<store>/<nodeId>/<filename>
其中:
d
和a
指的是直接/附加模式<workspace>
,<store>
和<nodeId>
引用您的内容nodeRef <filename>
您选择的文件名因此,您应该GET
申请一个类似于http://<host>:<port>/alfresco/d/d/workspace/SpacesStore/8444ad61-4734-40e3-b2d4-b8b1c81347fd/myFile.ext
的网址
注意:根据您节点上设置的权限,您可能需要将alf_ticket附加到经过身份验证的露天用户的URL。请查看this以获取进一步的见解。
更新1: 如果您在识别文件nodeRef时遇到问题,那么您可以设置实现自定义逻辑的repo webscript(浏览某个文件夹/按名称或元数据搜索文档....) 如果您不熟悉webscript开发,请检查Jeff Pott's tutorial on the subject
更新2: 要开始使用webscript开发,请查看Alfresco docs / wiki!
检查this wiki page以了解如何检索给定节点的子项! 或者检查this wiki page以了解如何开发实现自定义业务逻辑的网页脚本。
答案 1 :(得分:0)
如果您没有任何针对YUI javascript库(不再主动维护)的内容,您可以集成Alfresco Share中已有的对象查找器。图书馆在
private void FormatCode(List<string> codeList)
{
for (int i = 0; i < codeList.Count; i++)
{
codeList[i] = FormatCode(codeList[i]);
}
}
private string FormatCode(string code)
{
string formatted = String.Empty;
MatchCollection matches = new Regex("\".*?\"").Matches(code);
for (int i = 0; i < matches.Count; i++)
{
Match match = matches[i];
string toFormat = i == 0 ? code.Substring(0, match.Index) : code.Substring(matches[i - 1].Index + matches[i - 1].Length, code.Length - match.Index);
toFormat = String.Join(" ", toFormat.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries));
formatted += toFormat + matches[i].Value;
if(i == matches.Count - 1)
formatted += String.Join(" ", code.Substring(match.Index + match.Length).Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries));
}
return formatted;
}
鉴于您不在Share内,您需要对其进行一些修改。
说实话,我不知道它是否可行,因为它有其他依赖关系但是作为一个浏览器站点库,理论上可以在任何地方集成。