Hola,
estoy haciendo llamadas a la url:
http://*****:8080/alfresco/api/-default-/public/alfresco/versions/1/nodes/{nodeId}/content?include=path
os paso el trozo de codigo donde hago la llamada:
HttpPut httpPut = new HttpPut(****url anterior****);
ByteArrayEntity byteArrayEntity = new ByteArrayEntity(content); // content es el array de bytes
httpPut.setEntity(byteArrayEntity);
httpPut.setHeader("Accept", "application/octet-stream");
httpPut.setHeader("Content-type", "application/octet-stream");
CloseableHttpResponse responseContent = client.execute(httpPut);
al hacer esta llamada si el fichero que paso es de menos de 2 MB me guarda el fichero correctamente, si el fichero supera los 2 MB se queda pensando, sin mostrar ningún error en el log y no me devuelve ninguna excepción.
he pensado que no fuera una regla que tengo activada para que me genere los pdf's de los documentos que subo, pero al desactivarla tampoco me funciono.
He revisado la configuración del alfresco y no veo nada raro.
Saludos
No parece que sea un problema de Alfresco sino de cliente (Apache HttpClient, entiendo por tu código).
¿Has probado a realizar la misma invocación con Postman o algún software similar? Así descartarías que sea debido a una configuración de Alfresco.
Hola,
No he probado con ninguno, al final he modificado toda la función y ya me ha funcionado.
Lo que se hacia aquí era primero crear del documento sin contenido y después un update para añadir el documento (era esta funciona que me fallaba), ahora lo que he hecho es lo siguiente:
CloseableHttpClient client = HttpClientBuilder.create().setDefaultCredentialsProvider(provider).build();
HttpPost httpPost = new HttpPost(instance + "/nodes/" + folderNode.getEntry().getId() + "/children");
File tempFile = File.createTempFile(name, ".tmp");
tempFile.deleteOnExit();
FileOutputStream out = new FileOutputStream(tempFile);
IOUtils.copy(new ByteArrayInputStream(content), out);
FileBody fileBody = new FileBody(tempFile, ContentType.DEFAULT_BINARY, name);
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
builder.addPart("filedata", fileBody);
HttpEntity multipart = builder.build();
httpPost.setEntity(multipart);
CloseableHttpResponse response = client.execute(httpPost);
String stringResponse = EntityUtils.toString(response.getEntity());
ObjectMapper mapper = new ObjectMapper();
NodeResponse newDocument = mapper.readValue(stringResponse, NodeResponse.class);
con esta modificación con una llamada lo hago todo y he realizado pruebas con ficheros de hasta 46MB y me ha funcionado.
Saludos
Confirmado, entonces era problema de tu código.
Gracias por el feedback.
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.