<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Generar checksum en subida de documento in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/generar-checksum-en-subida-de-documento/m-p/110464#M77616</link>
    <description>&lt;P&gt;Hola,&lt;/P&gt;&lt;P&gt;me han pedido que evalue la posibilidad de que Alfresco en el momento de subir un documento, me devuelva el checksum del documento generado.&lt;/P&gt;&lt;P&gt;Esto es para que podamos incluir algún tipo de control para asegurar que el documento no se haya truncado y se haya podido subir correctamente.&lt;/P&gt;&lt;P&gt;Existe esta posiblidad o tendría que incluirla desde código (estoy trabajando en Java con apache chemistry).&lt;/P&gt;&lt;P&gt;Muchas gracias.&lt;/P&gt;</description>
    <pubDate>Mon, 28 Oct 2019 09:19:00 GMT</pubDate>
    <dc:creator>alex_grasset</dc:creator>
    <dc:date>2019-10-28T09:19:00Z</dc:date>
    <item>
      <title>Generar checksum en subida de documento</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/generar-checksum-en-subida-de-documento/m-p/110464#M77616</link>
      <description>&lt;P&gt;Hola,&lt;/P&gt;&lt;P&gt;me han pedido que evalue la posibilidad de que Alfresco en el momento de subir un documento, me devuelva el checksum del documento generado.&lt;/P&gt;&lt;P&gt;Esto es para que podamos incluir algún tipo de control para asegurar que el documento no se haya truncado y se haya podido subir correctamente.&lt;/P&gt;&lt;P&gt;Existe esta posiblidad o tendría que incluirla desde código (estoy trabajando en Java con apache chemistry).&lt;/P&gt;&lt;P&gt;Muchas gracias.&lt;/P&gt;</description>
      <pubDate>Mon, 28 Oct 2019 09:19:00 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/generar-checksum-en-subida-de-documento/m-p/110464#M77616</guid>
      <dc:creator>alex_grasset</dc:creator>
      <dc:date>2019-10-28T09:19:00Z</dc:date>
    </item>
    <item>
      <title>Re: Generar checksum en subida de documento</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/generar-checksum-en-subida-de-documento/m-p/110465#M77617</link>
      <description>&lt;P&gt;Alfresco solo almacena el tamaño del documento que ha almacenado (en bytes) en la propiedad &lt;STRONG&gt;cm:content.size&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;Si esto no es suficiente, si necesitas en realidad el &lt;EM&gt;checksum&lt;/EM&gt;, deberías desarrollar un addon que realizase ese cálculo y lo almacenase en una propiedad personalizada.&lt;/P&gt;
&lt;P&gt;Puedes echarle un vistazo a este proyecto:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://sujayopillai.com/2015/03/25/alfresco-checksum.html" target="_blank" rel="nofollow noopener noreferrer"&gt;http://sujayopillai.com/2015/03/25/alfresco-checksum.html&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 28 Oct 2019 11:10:53 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/generar-checksum-en-subida-de-documento/m-p/110465#M77617</guid>
      <dc:creator>angelborroy</dc:creator>
      <dc:date>2019-10-28T11:10:53Z</dc:date>
    </item>
    <item>
      <title>Re: Generar checksum en subida de documento</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/generar-checksum-en-subida-de-documento/m-p/110466#M77618</link>
      <description>&lt;P&gt;Muchas gracias, justamente en eso estoy, calculando yo el checksum e informandolo en una custom property, pero me esta pasando una cosa muy extraña.&lt;/P&gt;&lt;P&gt;Desde que estoy informando el checksum como metadato en la property los documentos llegan a Alfresco vacios. Sin embargo, si pongo yo a mano el valor que retorna la función que calcula el checksum el documento se sube correctamente.&lt;/P&gt;&lt;P&gt;Para aclarar:&lt;/P&gt;&lt;P&gt;checksum = "77410bc0143eeb2748da1d8e738a5ea6"; -&amp;gt; BIEN&lt;/P&gt;&lt;P&gt;checksum = getMD5Hash(file); -&amp;gt; MAL (la funcion retorna un string con el valor del ejemplo anterior)&lt;/P&gt;&lt;P&gt;Por otro lado esa url que me pasas ya la vi y no entiendo nada de lo que allí explica, siento que me falta una base importante para entender ese manual. Al final soy un desarrollador java, de Alfresco no se nada XD&lt;/P&gt;</description>
      <pubDate>Thu, 31 Oct 2019 08:08:51 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/generar-checksum-en-subida-de-documento/m-p/110466#M77618</guid>
      <dc:creator>alex_grasset</dc:creator>
      <dc:date>2019-10-31T08:08:51Z</dc:date>
    </item>
    <item>
      <title>Re: Generar checksum en subida de documento</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/generar-checksum-en-subida-de-documento/m-p/110467#M77619</link>
      <description>&lt;P&gt;La mejor manera de realizar este cálculo es desarrollando un Behaviour.&lt;/P&gt;
&lt;P&gt;En el ejemplo que te pasé, el behaviour se activa cuando se actualiza el contenido:&lt;/P&gt;
&lt;P&gt;&lt;A href="https://github.com/sujaypillai/alfchecksum/blob/master/chksum-repo/src/main/java/org/ootb/repo/ContentHasher.java#L98" target="_blank" rel="nofollow noopener noreferrer"&gt;https://github.com/sujaypillai/alfchecksum/blob/master/chksum-repo/src/main/java/org/ootb/repo/ContentHasher.java#L98&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;En este punto se asigna el hash a una propiedad personalizada del modelo de contenido:&lt;/P&gt;
&lt;P&gt;&lt;A href="https://github.com/sujaypillai/alfchecksum/blob/master/chksum-repo/src/main/java/org/ootb/repo/ContentHasher.java#L133" target="_blank" rel="nofollow noopener noreferrer"&gt;https://github.com/sujaypillai/alfchecksum/blob/master/chksum-repo/src/main/java/org/ootb/repo/ContentHasher.java#L133&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Adicionalmente, utiliza un aspecto para marcar qué documentos deben calcular el hash.&lt;/P&gt;
&lt;P&gt;¿Lo estás haciendo de esta manera o mediante otro mecanismo?&lt;/P&gt;</description>
      <pubDate>Thu, 31 Oct 2019 09:29:30 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/generar-checksum-en-subida-de-documento/m-p/110467#M77619</guid>
      <dc:creator>angelborroy</dc:creator>
      <dc:date>2019-10-31T09:29:30Z</dc:date>
    </item>
    <item>
      <title>Re: Generar checksum en subida de documento</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/generar-checksum-en-subida-de-documento/m-p/110468#M77620</link>
      <description>&lt;P&gt;Tiene pinta de que lo estás haciendo desde Chemistry.&lt;/P&gt;
&lt;P&gt;El problema puede ser que, después de calcular el HASH de un Stream, el stream queda vacío y por eso lo sube sin datos. Prueba a abrir el stream, calcular el hash, cerrar el stream y volver a abrirlo antes de enviarlo a Alfresco.&lt;/P&gt;</description>
      <pubDate>Thu, 31 Oct 2019 09:31:47 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/generar-checksum-en-subida-de-documento/m-p/110468#M77620</guid>
      <dc:creator>angelborroy</dc:creator>
      <dc:date>2019-10-31T09:31:47Z</dc:date>
    </item>
    <item>
      <title>Re: Generar checksum en subida de documento</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/generar-checksum-en-subida-de-documento/m-p/110469#M77621</link>
      <description>&lt;P&gt;Hola,&lt;/P&gt;&lt;P&gt;lo estoy haciendo desde Java.&lt;/P&gt;&lt;P&gt;En la daily acabamos de hablarlo y como el objetivo del checksum es comprobarsi el documento se ha subido correctamente o se ha truncado no nos serviria que Alfresco calculase el checksum con el behaviour como comentas puesto que el checksum calculado en Alfresco seria sobre un documento truncado.&lt;/P&gt;&lt;P&gt;Por tanto el problema que tengo ya no es como implementar el calculo del checksum ya que lo tengo hecho desde java, sino saber porque motivo si informo el checksum calculado en la customproperty con una constante "77410bc0143eeb2748da1d8e738a5ea6" funciona bien, pero si el que informa la property es la función de calculo del checksum con el mismo valor, sube el documento vacio.&lt;/P&gt;&lt;P&gt;Hay alguna manera de poder ver si esta creación del documento ha generado algún tipo de log de error o algo en Alfresco? Pongo mi método java que crea el documento por si ayuda:&lt;/P&gt;&lt;PRE&gt;public static Document createDocument(String folderName, InputStream file, String fName, Map&amp;lt;String, String&amp;gt; customProps) {

		if (getCurrentSession() == null) {
        	connect();
        }
		
		Map&amp;lt;String, Object&amp;gt; properties = new HashMap&amp;lt;String, Object&amp;gt;();
		properties.put(PropertyIds.OBJECT_TYPE_ID, CMIS_ELENA_DOCUMENT_TYPE);
		properties.put(PropertyIds.NAME, fName);

		for (Map.Entry&amp;lt;String, String&amp;gt; entry : customProps.entrySet()) {
			properties.put(entry.getKey(), entry.getValue());
		}
		
		//creamos checksum
		String checksum = "";
//		checksum = "77410bc0143eeb2748da1d8e738a5ea6"; //funciona
		try {
			checksum = DigestUtils.md5Hex(file); //falla (devuelve 77410bc0143eeb2748da1d8e738a5ea6)
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} 
		properties.put("elena:17", checksum);
		
		ContentStream contentStream;
		Document doc = null;
		//obtenemos carpeta
		Folder folder = createFolder(folderName,MAIN_FOLDER_NAME);
		
		//obtenemos tipo documento
		String mimeType = MimeTypes.getMIMEType(FilenameUtils.getExtension(fName));
		
		//Creamos stream
		contentStream = session.getObjectFactory().createContentStream(fName, -1, mimeType, file);
//		contentStream = session.getObjectFactory().createContentStream(fName, -1, "application/octet-stream", file);
		
		//comprobamos si documento ya existe
		Document document = (Document) getChildByName(folder, fName);
		
		if(document == null) {
			//si no existe lo creamos
			doc = folder.createDocument(properties, contentStream, VersioningState.MAJOR);
		}else {
			//si ya esta lo versionamos

			//comprobamos si se puede hacer checkout
			boolean isCheckedOut = Boolean.TRUE.equals(document.isVersionSeriesCheckedOut());
			String checkedOutBy = document.getVersionSeriesCheckedOutBy();			
			//TODO AGC se puede usar control de quien tiene pillado el documento con isCheckedOut y checkedOutBy
			
			//check-out
			ObjectId pwcId = document.checkOut();
			Document pwc = (Document) session.getObject(pwcId);			

			//check-in
			ObjectId newVersionId = pwc.checkIn(true, properties, contentStream, "Nueva versión");
			doc = (Document) session.getObject(newVersionId);
		}
	
		return doc;
	}&lt;/PRE&gt;</description>
      <pubDate>Thu, 31 Oct 2019 09:52:53 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/generar-checksum-en-subida-de-documento/m-p/110469#M77621</guid>
      <dc:creator>alex_grasset</dc:creator>
      <dc:date>2019-10-31T09:52:53Z</dc:date>
    </item>
    <item>
      <title>Re: Generar checksum en subida de documento</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/generar-checksum-en-subida-de-documento/m-p/110470#M77622</link>
      <description>&lt;P&gt;Si perdona, es con chemistry, y por cierto, toda la pinta de que es justo eso que comentas, voy a probar.&lt;/P&gt;&lt;P&gt;Mil gracias!&lt;/P&gt;</description>
      <pubDate>Thu, 31 Oct 2019 09:55:20 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/generar-checksum-en-subida-de-documento/m-p/110470#M77622</guid>
      <dc:creator>alex_grasset</dc:creator>
      <dc:date>2019-10-31T09:55:20Z</dc:date>
    </item>
    <item>
      <title>Re: Generar checksum en subida de documento</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/generar-checksum-en-subida-de-documento/m-p/110471#M77623</link>
      <description>&lt;P&gt;Hola, cuando dices abrir el stream, dado mi codigo, como seria? no soy capaz de ver el problema&lt;/P&gt;&lt;P&gt;Mil gracias.&lt;/P&gt;</description>
      <pubDate>Thu, 31 Oct 2019 12:55:20 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/generar-checksum-en-subida-de-documento/m-p/110471#M77623</guid>
      <dc:creator>alex_grasset</dc:creator>
      <dc:date>2019-10-31T12:55:20Z</dc:date>
    </item>
    <item>
      <title>Re: Generar checksum en subida de documento</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/generar-checksum-en-subida-de-documento/m-p/110472#M77624</link>
      <description>&lt;P&gt;En ese método estás recibiendo el InputStream del fichero en la variable &lt;STRONG&gt;file&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;Cando realizas el cálculo del checksum en &lt;STRONG&gt;DigestUtils.md5Hex(file)&lt;/STRONG&gt; estás consumiendo el Stream, por eso cuando creas el contentStream se basa en un Stream vacío.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;contentStream = session.getObjectFactory().createContentStream(fName, -1, mimeType, file);&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Yo probaría a pasarle el objeto &lt;STRONG&gt;File&lt;/STRONG&gt; a este método, así podrías abrir un InputStream para calcular el MD5 y volver a crear un nuevo InputStream de cero para construir el &lt;STRONG&gt;contentStream&lt;/STRONG&gt;.&lt;/P&gt;</description>
      <pubDate>Thu, 31 Oct 2019 15:51:47 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/generar-checksum-en-subida-de-documento/m-p/110472#M77624</guid>
      <dc:creator>angelborroy</dc:creator>
      <dc:date>2019-10-31T15:51:47Z</dc:date>
    </item>
    <item>
      <title>Re: Generar checksum en subida de documento</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/generar-checksum-en-subida-de-documento/m-p/110473#M77625</link>
      <description>&lt;P&gt;Hola, problema resuelto, como no era viable poder modificar el tipo de parametro que llegaba a mi método, lo que he hecho es clonar el inputstream y usar uno para calcular el checksum y otro para generar el content stream.&lt;/P&gt;&lt;P&gt;Muchas gracias.&lt;/P&gt;</description>
      <pubDate>Mon, 04 Nov 2019 07:35:30 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/generar-checksum-en-subida-de-documento/m-p/110473#M77625</guid>
      <dc:creator>alex_grasset</dc:creator>
      <dc:date>2019-11-04T07:35:30Z</dc:date>
    </item>
  </channel>
</rss>

