mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
speed up template download: don't sync io for each write
This commit is contained in:
parent
9c56b3d4db
commit
6de4dcb10a
@ -26,6 +26,7 @@ import java.io.InputStream;
|
||||
import java.io.RandomAccessFile;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import java.net.URL;
|
||||
import java.util.Date;
|
||||
|
||||
import org.apache.commons.httpclient.ChunkedInputStream;
|
||||
@ -233,9 +234,10 @@ public class HttpTemplateDownloader extends ManagedContextRunnable implements Te
|
||||
remoteSize = maxTemplateSizeInBytes;
|
||||
}
|
||||
|
||||
InputStream in = !chunked ? new BufferedInputStream(request.getResponseBodyAsStream()) : new ChunkedInputStream(request.getResponseBodyAsStream());
|
||||
URL url = new URL(getDownloadUrl());
|
||||
InputStream in = url.openStream();
|
||||
|
||||
RandomAccessFile out = new RandomAccessFile(file, "rwd");
|
||||
RandomAccessFile out = new RandomAccessFile(file, "rw");
|
||||
out.seek(localFileSize);
|
||||
|
||||
s_logger.info("Starting download from " + getDownloadUrl() + " to " + toFile + " remoteSize=" + remoteSize + " , max size=" + maxTemplateSizeInBytes);
|
||||
@ -279,6 +281,8 @@ public class HttpTemplateDownloader extends ManagedContextRunnable implements Te
|
||||
done = true;
|
||||
}
|
||||
}
|
||||
out.getFD().sync();
|
||||
|
||||
Date finish = new Date();
|
||||
String downloaded = "(incomplete download)";
|
||||
if (totalBytes >= remoteSize) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user