使用 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> 其中:

  • da指的是直接/附加模式
  • <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 中,您需要稍微修改一下。

老实说,我不知道是否可行,因为它有其他依赖,但作为浏览器站点库,理论上可以随处集成。