使用 Django 和 Alfresco 的文件浏览器
File browser with Django and Alfresco
我有一个 Django 站点和一个本地安装的 Alfresco(社区版)。我的一个模型包含一个文件引用,它映射到 Alfresco 中的一个文档。该视图应该有一个字段,用于生成一个文件浏览器,该文件浏览器可以访问 Alfresco 中的存储库结构,以便用户可以选择他们想要的任何版本的文件。
我看了CMSIlib module and it seems to be providing all the interaction I need for the back end code. Although downloading a document seems clunky。
有很多Django file browsers but none seem to interface with CMSIlib。
我必须自己编写代码还是我遗漏了什么?
版本为Alfresco Community v5.0.0 (d r99759-b2) schema 8022 Spring Surf and Spring WebScripts - v5.0.0
。
老实说,我不是python人!但是我在官方 #alfresco
IRC 频道听说 cmislib 不是一个活跃的项目,关于它的问题只是偶尔出现一次.... RESTful api 然而在您的用例中可能被认为是一个很好的选择:
要使用 RESTful api 访问露天内容,您应该查询此网络脚本:/alfresco/d/<d|a>/<workspace>/<store>/<nodeId>/<filename>
其中:
d
和a
指的是直接/附加模式
<workspace>
、<store>
和 <nodeId>
引用您的内容 nodeRef
<filename>
您选择的文件名
所以你应该制作一个 GET
请求一个看起来像这样的 URL 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 了解如何开发实现自定义业务逻辑的网络脚本。
如果您不反对 YUI javascript 库(不再主动维护),您可以集成 Alfresco Share 中已有的 object-finder。图书馆在
share/components/object-finder/object-finder.js
鉴于您不在 Share 中,您需要稍微修改一下。
老实说,我不知道是否可行,因为它有其他依赖,但作为浏览器站点库,理论上可以随处集成。
我有一个 Django 站点和一个本地安装的 Alfresco(社区版)。我的一个模型包含一个文件引用,它映射到 Alfresco 中的一个文档。该视图应该有一个字段,用于生成一个文件浏览器,该文件浏览器可以访问 Alfresco 中的存储库结构,以便用户可以选择他们想要的任何版本的文件。
我看了CMSIlib module and it seems to be providing all the interaction I need for the back end code. Although downloading a document seems clunky。
有很多Django file browsers but none seem to interface with CMSIlib。
我必须自己编写代码还是我遗漏了什么?
版本为Alfresco Community v5.0.0 (d r99759-b2) schema 8022 Spring Surf and Spring WebScripts - v5.0.0
。
老实说,我不是python人!但是我在官方 #alfresco
IRC 频道听说 cmislib 不是一个活跃的项目,关于它的问题只是偶尔出现一次.... RESTful api 然而在您的用例中可能被认为是一个很好的选择:
要使用 RESTful api 访问露天内容,您应该查询此网络脚本:/alfresco/d/<d|a>/<workspace>/<store>/<nodeId>/<filename>
其中:
d
和a
指的是直接/附加模式<workspace>
、<store>
和<nodeId>
引用您的内容 nodeRef<filename>
您选择的文件名
所以你应该制作一个 GET
请求一个看起来像这样的 URL 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 了解如何开发实现自定义业务逻辑的网络脚本。
如果您不反对 YUI javascript 库(不再主动维护),您可以集成 Alfresco Share 中已有的 object-finder。图书馆在
share/components/object-finder/object-finder.js
鉴于您不在 Share 中,您需要稍微修改一下。
老实说,我不知道是否可行,因为它有其他依赖,但作为浏览器站点库,理论上可以随处集成。