Buenas,
Quisiera saber si existe la forma de agregar contenido (como ContentStream) a un documento creado a través de un webscript 'personalizado' que cree. Sé cómo hacerlo con CMIS, pero necesito saber si puedo darle contenido usando un webscript y si es así, agradecería que me guíen con la forma de hacerlo.
PD: no sé si sea relevante, pero el modelo de contenido es custom también.
¡Saludos!
¿Te refieres a subir o modificar contenido utilizando una invocación REST? (sería equivalente a CMIS)
File upload | Alfresco Documentation
Hola Angel, lo que necesito es poder agregar contenido a un documento que creo utilizando un webscript. Explico: desde java envío (con POST) los datos como nombre del archivo y metadata al webscript que me crea el archivo y debo darle contenido, como el ContentStream que utilicé cuando hice esto mismo con CMIS.
Lo que debo hacer entonces es leer una hoja de cálculo que entre sus datos tiene la ruta del archivo que tiene el contenido que quiero colocar en este documento que creo, pero no sé de qué manera hacer esta 'copia' como lo podía hacer con CMIS.
Con CMIS hacía esto, es un un extracto del código:
Map<String, Object> properties = new HashMap<String, Object>();
properties.put("cmisbjectTypeId", "D:bc:document, P:bc:data");
properties.put(PropertyIds.NAME, name);
properties.put("bc:documentType", nameDoc);
properties.put("bc:documentTypeId", idType);
properties.put("bc:idDocument", typeDoc);
properties.put("bc:folioDocument", folio);
properties.put("bc:rutClient", clientId);
properties.put("bc:clientName", clientName);
fld = CreateFolders.CreateFolderTree(CreateFolders.listFolderNames(clientId));
try {
byte[] data = Files.readAllBytes(new File(path).toPath());
InputStream stream = new ByteArrayInputStream(data);
ContentStream contentStream = new ContentStreamImpl(name, BigInteger.valueOf(data.length),
"application/pdf", stream);
fld.createDocument(properties, contentStream, VersioningState.MAJOR);
} catch (IOException e) {
e.printStackTrace();
}
Mi consulta es como llevar este ContentStream (solo el content porque las propiedades las seteo en el Webscript con los datos recibidos por POST) al webscript para así poder aplicar el 'document.content = args.contentStream' o algo parecido y así mi documento tenga contenido.
Por si sirve, así envío los datos por POST hacia el webscript:
post.setEntity((HttpEntity) new UrlEncodedFormEntity(data, "UTF-8"));
Donde "data" es una lista de NameValuePair.
Creo que eso es precisamente lo que te proporciona la API a la que he hecho referencia antes. ¿O has desarrollado tu propio webscript y quieres enviarle el contenido del documento por ahí?
Así es, he usado mi propio webscript porque así me lo han pedido en la práctica profesional :B
Viendo la API veo que me permite subir subir un archivo y su metadata a un repositorio dado, pero en mi caso solo necesito obtener el content stream de un archivo para así ingresarlo a este documento que creo con el webscript
No sé si entiendo bien lo que necesitas, pero supongo que podrías adaptar tu webscript para que fuese un POST que acepta un formulario (no hay otra forma de subir un fichero).
Quizá el código fuente de Alfresco te sirva de inspiración: https://github.com/Alfresco/community-edition-old/blob/master/projects/remote-api/config/alfresco/te...
Discussions about Alfresco Content Services and Alfresco Process Services in Spanish
Related:
By using this site, you are agreeing to allow us to collect and use cookies as outlined in Alfresco’s Cookie Statement and Terms of Use (and you have a legitimate interest in Alfresco and our products, authorizing us to contact you in such methods). If you are not ok with these terms, please do not use this website.