08-04-2014 10:40 AM
ContentReader contentReader = contentService.getReader(actionedUponNodeRef, ContentModel.PROP_CONTENT);
InputStream is = contentReader.getContentInputStream();
BufferedReader br= new BufferedReader(new InputStreamReader (is));
/alfresco/download/<direct|attach>/<workspace>/<store>/<nodeId>/<filename>
Content[] content = WebServiceFactory.getContentService().read(new Predicate(new Reference[]{fileRef}, STORE, null) , "{http://www.alfresco.org/model/content/1.0}content" );
String url = content[0].getUrl();
08-04-2014 11:11 AM
08-05-2014 04:21 AM
08-05-2014 10:41 AM
/alfresco/download/attach/workspace/SpacesStore/uuid/filename?ticket=userticket 08-06-2014 06:58 AM
http://<Alfresco_IP>/alfresco/download/attach/workspace/SpacesStore/def199df-03e3-4b8e-993a-6fe1aae02733/test.pdf
08-06-2014 10:17 AM
http://<Alfresco_IP>/alfresco/download/attach/workspace/SpacesStore/def199df-03e3-4b8e-993a-6fe1aae02733/test.pdf do not accept username and password parameter.08-07-2014 04:31 AM
GetMethod method = new GetMethod(alfrescoServletDownloadUrlWithTicket);
method.setQueryString(ticketParameter);
HttpClient client = new HttpClient();
int statusCode = client.executeMethod(method);
08-08-2014 05:21 AM
String range = req.getHeader(HEADER_CONTENT_RANGE);
(…)
HttpRangeProcessor rangeProcessor = new HttpRangeProcessor(contentService);
processedRange = rangeProcessor.processRange(res, reader, range.substring(6), nodeRef, propertyQName, mimetype, req.getHeader(HEADER_USER_AGENT));
(…)
if (processedRange == false) {
// return the complete entity range
long size = reader.getSize();
res.setHeader(HEADER_CONTENT_RANGE, "bytes 0-" + Long.toString(size-1L) + "/"+Long.toString(size));
res.setHeader(HEADER_CONTENT_LENGTH, Long.toString(size));
reader.getContent( res.getOutputStream() );
}
08-08-2014 11:38 PM
08-08-2014 11:34 PM
//send first reqeust get file length
HttpClient httpClient = new HttpClient();
HeadMethod httpHead = new HeadMethod(url);
int statusCode = httpClient.executeMethod(httpHead);
Header[] headers = httpHead.getResponseHeaders();
long contentLength = 0;
for( Header header:headers){
header.getName().equalsIgnoreCase("Content-Length");
contentLength = Long.valueOf(header.getValue());
}
then send multi request to download byte range stream
GetMethod httpGet = new GetMethod(url);
long perRequestLength = 4096;
long startPosition = 0;
for (startPosition = 0; startPosition < contentLength; startPosition += perRequestLength) {
long endPosition = Math.min(4096, (int) contentLength - startPosition);
httpGet.addRequestHeader("Connection", "Keep-Alive");
httpGet.addRequestHeader("Range", "bytes=" + startPosition + "-"
+ endPosition);
// Execute
statusCode= httpClient.executeMethod(httpGet);
InputStream inputStream = httpGet.getResponseBodyAsStream();
// create ramdom acces file
RandomAccessFile outputStream = new RandomAccessFile(file, "rw");
outputStream.seek(startPosition);
int count = 0;
byte[] buffer = new byte[1024];
while ((count = inputStream.read(buffer, 0, buffer.length)) > 0) {
outputStream.write(buffer, 0, count);
}
outputStream.close();
}
Tags
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.