一个用于 Python 的 CMIS API 库,第 2 部分: 使用 Python 和 cmislib 构建真正的 ECM 工具
2010-05-05 00:00:00 来源:WEB开发网serviceURL 目标 CMIS 存储库的 XML 服务文档的完整 URL(例如:http://localhost:9080/cmis/service)。
targetClassName 用于指定将为新文档创建的 cmis:document 的子类的可选类类型。
例如,一位摄影师的内容管理系统可能拥有一个名为 CmisJpg 的类。这个 CmisJpg 类包含某些常用 Exif 值的属性定义,这位摄影师可能会在搜索她的图像目录时查询这些值。如果这个参数未指定,这个工具将把所有文档创建为 cmis:document 类型。
debug 调试模式(可选)。
参数值为 true 时,调试模式只会尝试重新创建目标目录结构,但不会复制任何文档。
如果省略,默认值为 false(复制所有数据)。
代码
现在我将逐步介绍这个工具代码的一些重要部分,描述它们是如何工作的。注意,为简便起见,我不会详细介绍所有代码,但是我跳过的部分都比较简单,是不言而喻的。要获取整个文件(和注释),请参见 下载 部分。下面是我将讨论的项目的高级列表:
将 6 个运行时参数读入工具。
初始化 cmislib 库并获取一个存储库对象,该对象将用作与 CMIS 存储库的所有通信的根。
验证目标文件夹和目标类定义有效并存在于目标库中。
审查基本 xcopy 逻辑。
从 JPG 文件读入 Exif 头部数据。
使用 cmislib 创建一个带有元数据的文档。
基于类型将 Exif 数据动态填充到目标类的属性中。
步骤 1:解析参数
首先需要在运行时将这 6 个参数(参见 定义输入)传入工具。这里,我决定将它们分割为两个类别。第一类是我希望在命令行上传入的值(我不想在命令行上指定所有 6 个参数,因为它们中的一半对于一个给定的存储库不会有太多改变)。由于我是根据 xcopy 建模的,所以我将只接受前三个参数(源、目标和过滤器)。其他三个参数怎么办?对于它们,我将使用一个 .cfg 文本文件,因为它们对于一个给定存储而言是静态的。将这个配置文件放置到脚本所在的目录中,并将其命名为 cmisxcopy.cfg。
更多精彩
赞助商链接