Example usage for com.amazonaws.services.s3.transfer.internal DownloadImpl setState

List of usage examples for com.amazonaws.services.s3.transfer.internal DownloadImpl setState

Introduction

In this page you can find the example usage for com.amazonaws.services.s3.transfer.internal DownloadImpl setState.

Prototype

@Override
public void setState(TransferState state) 

Source Link

Document

This method is also responsible for firing COMPLETED signal to the listeners.

Usage

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;
}