Hola, estoy trabajando con alfresco y al momento de subir un archivo no hay problema, el problema es que al momento de intentar subir un archivo con el mismo nombre no sube nada. ¿Cómo hago para que cuando suba documentos que ya existan en Alfresco no me de error sino que tome el documento como una nueva versión del archivo que ya se encuentra en Alfresco? la version de alfresco que estoy utilizando es la 5.2 y el codigo para subir un archivo es el siguiente:
Para subir nuevas versiones, necesitas bloquear el nodo previamente.
Tienes un ejemplo aquí: https://community.alfresco.com/community/ecm/blog/2016/11/11/v1-rest-api-part-5-versioning-locking
Estimado, lamentablemente no he conseguido obtener resultados positivos siguiendo el tutorial. al momento de agregar propiedades no tengo ningún problema por ejemplo en el siguiente código añado la propiedad MajorVersion=true de la siguiente manera:
<?php
//DATA
$ticket = 'TICKET_f7acb34052591bf8cc49add5be1dd17578ebc5cc';
$pdfnode = '13caa245-2249-4769-953c-b010053a6fd4';
$server = 'http://192.168.120.209';
$port = ':8080';
$filename = '../informeGeneradores/files/minuta12.pdf';
$type = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';
$url = $server.$port.'/alfresco/api/-default-/public/alfresco/versions/1/nodes/'.$pdfnode.'/children?alf_ticket='.$ticket;
$ch = curl_init($url);
$args = new CurlFile($filename,$type,$filename);
$data = array(
'nodeType'=>'cm:content',
'filedata'=>$args,
'name'=> 'version',
'MajorVersion'=>'true'
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_VERBOSE, true);
$result = curl_exec($ch);
echo $result;
?>
y el resultado es el siguiente:
{"entry":{"isFile":true,"createdByUser":{"id":"admin","displayName":"Administrator"},"modifiedAt":"2018-05-25T16:41:49.397+0000","nodeType":"cm:content","content":{"mimeType":"application/pdf","mimeTypeName":"Adobe PDF Document","sizeInBytes":5172,"encoding":"UTF-8"},"parentId":"13caa245-2249-4769-953c-b010053a6fd4","aspectNames":["cm:versionable","cm:titled","cm:auditable","cm:author"],"createdAt":"2018-05-25T16:41:49.397+0000","isFolder":false,"modifiedByUser":{"id":"admin","displayName":"Administrator"},"name":"version","id":"0418771d-adc4-4343-8eba-9d9015b8e1b2","properties":{"cm:versionLabel":"1.0","cm:versionType":"MAJOR"}}}
Pero luego en el siguiente paso le añado la siguiente propiedad:
majorversion= false de la siguiente manera:
<?php
//DATA
$ticket = 'TICKET_f7acb34052591bf8cc49add5be1dd17578ebc5cc';
$pdfnode = '13caa245-2249-4769-953c-b010053a6fd4';
$server = 'http://192.168.120.209';
$port = ':8080';
$filename = '../informeGeneradores/files/minuta12.pdf';
$type = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';
$url = $server.$port.'/alfresco/api/-default-/public/alfresco/versions/1/nodes/'.$pdfnode.'/children?alf_ticket='.$ticket;
$ch = curl_init($url);
$args = new CurlFile($filename,$type,$filename);
$data = array(
'nodeType'=>'cm:content',
'filedata'=>$args,
'name'=> 'version',
'majorVersion'=>'false',
'comment'=>'second'
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_VERBOSE, true);
$result = curl_exec($ch);
echo $result;
?>
y el resultado es el siguiente:
{"error":{"errorKey":"version already exists.","statusCode":409,"briefSummary":"04250647 version already exists.","stackTrace":"Por motivos de seguridad, ya no se muestra el seguimiento de la pila, pero se guarda la propiedad para versiones anteriores.","descriptionURL":"https://api-explorer.alfresco.com"}}
la verdad no se qué es lo que estoy haciendo mal también he intentado subiendo un archivo con la propiedad majorversion=false y repitiendo el procedimiento me da el mismo error. Espero me puedas ayudar.
Estimado angel, lamentablemente yo tambien estoy teniendo el mismo problema... paso los argumentos y puedo modificar el nombre, cambiar de majorVersion a minorVersion pero al momento de cargar el segundo archivo sigo atrapado en el mismo problema.
Hace tiempo que no lo pruebo, pero esto funcionaba:
Hace la siguiente invocación pasando el contenido en el payload
[PUT] http://localhost:8080/alfresco/api/-default-/public/alfresco/versions/1/nodes/0a3f5195-4884-49bb-b1a... version
Estimado,
He intentado con la url que me has mandado en el enlacePero lo que hace es descargar un archivo y no modifica la version, obviamente algo esto haciendo mal pero no logro darme cuenta en que estoy fallando, espero me puedas ayudar.
Haz un PUT, no un GET
Muchas gracias por la paciencia Angel Voy a intentar nuevamente.
Aldo, cordial saludo. Pudiste resolver este asunto?
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.