一个用于 Python 的 CMIS API 库,第 2 部分: 使用 Python 和 cmislib 构建真正的 ECM 工具
2010-05-05 00:00:00 来源:WEB开发网步骤 2:使用 cmislib 初始化您的 CMIS 连接
清单 4 最终开始执行一些真正的 CMIS 工作。首先必须导入 cmislib 模块。首先,使用此前(在清单 2 和 3 中)获取的值初始化客户端对象;然后,获取 defaultRepository 对象 repo。接下来,使用 getObjectByPath(path) 调用尝试获取目标文件夹。(注意,cmislib 能够帮助您轻松获取这个对象,就像从这个标准 Python 库获取一个本地文件夹对象一样。)如果这个操作由于某种原因失败(比如指定的文件夹不存在),则这个任务将失败并显示一条恰当的消息。那么,您需要使用 getTypeDefinition() 调用对目标类型定义执行一个类似的健全性检查。
拥有这两个有效的 cmislib 对象后,您知道您拥有的与目标系统相关的所有信息都是正确的,因此可以继续进行处理。注意用于初始化 folderCacheDict dictionary 对象的那一行。如果稍后再次需要这个文件夹对象,可以从这个缓存获取它,而不是再往返一次去获取它。注意,这个缓存对于您使用的特定遍历算法并不真正需要,我在这里使用它只是为了展示当您将来需要扩展这个工具时应该怎样做。
清单 4. 初始化 CmisClient 并获取目标文件夹和目标类对象
from cmislib.model import CmisClient
# initialize the client object based on the passed in values
client = CmisClient(UrlCmisService, user_id, password)
repo = client.defaultRepository
# test to see if the target folder is valid
targetCmisLibFolder = None
try:
targetCmisLibFolder = repo.getObjectByPath(targetCmisFolderStartingPath)
except:
# terminate if we can't get a folder object
print "The target folder specified can not be found:" + targetCmisFolderStartingPath
sys.exit()
# initialize the folder cache with the starting folder
folderCacheDict = {targetCmisFolderStartingPath : targetCmisLibFolder}
# test to see if the target class type is valid
targetTypeDef = None
try:
targetTypeDef = repo.getTypeDefinition(targetClassName)
except:
# terminate if we can't get the target class type definition object
print "The target class type specified can not be found:" + targetClassName
sys.exit()
更多精彩
赞助商链接