El estandar CMIS (Content Management Interoperability Services) es un estandar para la gestion de contenidos aprobada por OASIS.
http://en.wikipedia.org/wiki/Content_Management_Interoperability_Services
Esto nos permite tener una capa de llamadas estandar para multitud de productos de gestion de contenidos que incluyan CMIS y por tanto también acceder desde multitud de lenguajes y no solo desde Java.
Este es el caso de cmislib de Jeff Potts para Python.
La installación es muy sencilla, necesitamos un interprete Python (versión
2.7) además del módulo cmislib y setuptools para instalar el primero y
Alfresco 4.
Podemos usar la línea de comandos de Python para hacer las siguientes pruebas:
Importamos la librería:
from cmislib.model import CmisClient, Repository
Creamos el cliente configurando el end-point y las credenciales:
client = CmisClient(‘http://localhost:8080/alfresco/s/cmis’, ‘admin’, ‘admin’)
Recuperamos el servicio de repositorio por defecto:
repo = client.getDefaultRepository()
repo.getRepositoryId()
Recuperamos información del repositorio:
info = repo.getRepositoryInfo()
for k,v in info.items():
print «%s:%s» % (k,v)
Deberia devolvernos algo así:
cmisSpecificationTitle:Version 1.0 OASIS Standard
aclCapability:
cmisVersionSupported:1.0
principalAnonymous:guest
principalAnyone:GROUP_EVERYONE
repositoryDescription:None
changesOnType:cmis:document
changesIncomplete:true
productVersion:4.0.0 (4003)
rootFolderId:workspace://SpacesStore/b92b669b-4f2a-42ab-a9d8-1451b1596e80
repositoryId:6891ed19-41e3-4160-8c77-65de35c5a428
repositoryName:Main Repository
vendorName:Alfresco
productName:Alfresco Repository (Community)
Bien, ya lo tenemos, ahora creamos…
… una carpeta:
rootFolder = repo.rootFolder
newFolder = rootFolder.createFolder(‘Carpeta nueva’)
newFolder.id
… un contenido:
f = open(‘Mi fichero’, ‘r’)
newDoc = newFolder.createDocument(‘New Document’, contentFile=f)
… y listamos las propiedades:
for k,v in newDoc.properties.items()
print ‘%s = %s’ % (k,v)
Personalmente me parece una idea muy buena y más con el lenguaje más popular
del momento 😉
Más información en:
https://code.google.com/p/cmislib/
http://chemistry.apache.org/python/cmislib.html
https://pypi.python.org/pypi/setuptools#files
http://www.python.org/
https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=cmis
http://cmis.alfresco.com/