List of usage examples for com.amazonaws.services.s3.transfer.internal DownloadImpl setState
@Override public void setState(TransferState state)
From source file:com.davidsoergel.s3napback.StreamingTransferManager.java
License:Apache License
private Download download(final GetObjectRequest getObjectRequest, final BufferedOutputStream os, final TransferStateChangeListener stateListener) { appendUserAgent(getObjectRequest, USER_AGENT); String description = "Downloading from " + getObjectRequest.getBucketName() + "/" + getObjectRequest.getKey(); // Add our own transfer progress listener TransferProgressImpl transferProgress = new TransferProgressImpl(); ProgressListenerChain listenerChain = new ProgressListenerChain( new TransferProgressUpdatingListener(transferProgress), getObjectRequest.getProgressListener()); getObjectRequest.setProgressListener(listenerChain); final S3Object s3Object = s3.getObject(getObjectRequest); final DownloadImpl download = new DownloadImpl(description, transferProgress, listenerChain, s3Object, stateListener);/* w w w. ja v a2s. c o m*/ // null is returned when constraints aren't met if (s3Object == null) { download.setState(Transfer.TransferState.Canceled); download.setMonitor(new DownloadMonitor(download, null)); return download; } long contentLength = s3Object.getObjectMetadata().getContentLength(); if (getObjectRequest.getRange() != null && getObjectRequest.getRange().length == 2) { long startingByte = getObjectRequest.getRange()[0]; long lastByte = getObjectRequest.getRange()[1]; contentLength = lastByte - startingByte; } transferProgress.setTotalBytesToTransfer(contentLength); Future<?> future = threadPool.submit(new Callable<Object>() { //@Override public Object call() throws Exception { try { download.setState(Transfer.TransferState.InProgress); StreamingServiceUtils.downloadObjectToStream(s3Object, os); download.setState(Transfer.TransferState.Completed); return true; } catch (Exception e) { // Downloads aren't allowed to move from canceled to failed if (download.getState() != Transfer.TransferState.Canceled) { download.setState(Transfer.TransferState.Failed); } throw e; } } }); download.setMonitor(new DownloadMonitor(download, future)); return download; }
From source file:org.finra.dm.dao.impl.MockS3OperationsImpl.java
License:Apache License
/** * Downloads an object./* ww w. j a v a2 s . co m*/ */ @Override public Download download(String bucket, String key, File file, TransferManager transferManager) { MockS3Bucket mockS3Bucket = mockS3Buckets.get(bucket); MockS3Object mockS3Object = mockS3Bucket.getObjects().get(key); try (FileOutputStream fileOutputStream = new FileOutputStream(file)) { fileOutputStream.write(mockS3Object.getData()); } catch (IOException e) { throw new RuntimeException("Error writing to file " + file, e); } TransferProgress progress = new TransferProgress(); progress.setTotalBytesToTransfer(mockS3Object.getData().length); progress.updateProgress(mockS3Object.getData().length); DownloadImpl download = new DownloadImpl(null, progress, null, null, null, new GetObjectRequest(bucket, key), file); download.setState(TransferState.Completed); return download; }
From source file:org.finra.herd.dao.impl.MockS3OperationsImpl.java
License:Apache License
@Override public Download download(String bucket, String key, File file, TransferManager transferManager) { MockS3Bucket mockS3Bucket = mockS3Buckets.get(bucket); MockS3Object mockS3Object = mockS3Bucket.getObjects().get(key); try (FileOutputStream fileOutputStream = new FileOutputStream(file)) { fileOutputStream.write(mockS3Object.getData()); } catch (IOException e) { throw new RuntimeException("Error writing to file " + file, e); }/* ww w . jav a2 s . c om*/ TransferProgress progress = new TransferProgress(); progress.setTotalBytesToTransfer(mockS3Object.getData().length); progress.updateProgress(mockS3Object.getData().length); DownloadImpl download = new DownloadImpl(null, progress, null, null, null, new GetObjectRequest(bucket, key), file, mockS3Object.getObjectMetadata(), false); download.setState(TransferState.Completed); return download; }