in src/main/java/S3Downloader.java [63:95]
private void download(TaskListener listener, BuildArtifacts buildArtifact, String artifactRoot) {
if (buildArtifact == null
|| buildArtifact.getLocation() == null
|| buildArtifact.getLocation().isEmpty()
|| artifactRoot == null) {
return;
}
String s3Bucket = Utils.getS3BucketFromObjectArn(buildArtifact.getLocation());
String keyPrefix = Utils.getS3KeyFromObjectArn(buildArtifact.getLocation());
Transfer transfer;
try {
if (buildArtifact.getSha256sum() != null && !buildArtifact.getSha256sum().isEmpty()) {
// Download single zip file
File file = new File(artifactRoot + File.separatorChar + keyPrefix);
LoggingHelper.log(listener, "Downloading artifact from location '" + buildArtifact.getLocation() + "' to path:" + file.getAbsolutePath());
Utils.ensureFileExists(file);
transfer = transferManager.download(s3Bucket, keyPrefix, file);
} else {
// Download entire directory content
File file = new File(artifactRoot);
LoggingHelper.log(listener, "Downloading artifact from location '" + buildArtifact.getLocation() + "' to path:" + file.getAbsolutePath());
transfer = transferManager.downloadDirectory(s3Bucket, keyPrefix, file);
}
transfer.waitForCompletion();
} catch (AmazonServiceException e) {
LoggingHelper.log(listener, "Download failed:" + e.getMessage());
} catch (InterruptedException e) {
LoggingHelper.log(listener, "Download failed:" + e.getMessage());
} catch (IOException e) {
LoggingHelper.log(listener, e.getMessage());
}
}