Refine search
/** * Adds the specified progress listener to the list of listeners * receiving updates about this transfer's progress. * * @param listener * The progress listener to add. */ public synchronized void addProgressListener(ProgressListener listener) { listenerChain.addProgressListener(listener); }
ProgressListenerChain additionalListeners = new ProgressListenerChain(); TransferProgress progress = new TransferProgress(); uploads.add((UploadImpl) doUpload( new PutObjectRequest(bucketName, virtualDirectoryKeyPrefix + key, f) progress.setTotalBytesToTransfer(totalSize);
@Override public void progressChanged(ProgressEvent progressEvent) { super.progressChanged(progressEvent); progressListenerChain.progressChanged(progressEvent); }
@Override public PutObjectResult putObject(PutObjectRequest req) throws AmazonClientException, AmazonServiceException { if (!multipartUpload) { return super.putObject(req); } final long contentLen = TransferManagerUtils.getContentLength(req); String tempFilename = req.getKey() + ".tmp"; String origFilename = req.getKey(); req.setKey(tempFilename); XProgressListener progressListener = new XProgressListener(); req.setGeneralProgressListener(new ProgressListenerChain(progressListener)); progressListener.setContentLen(contentLen); progressListener.setUpload(transferManager.upload(req)); progressListener.setSilentUpload(silentUpload); try { progressListener.getUpload().waitForCompletion(); } catch (InterruptedException e) { throw new AmazonClientException(e.getMessage(), e); } CopyObjectRequest copyReq = new CopyObjectRequest(req.getBucketName(), tempFilename, req.getBucketName(), origFilename); copyObject(copyReq); deleteObject(new DeleteObjectRequest(req.getBucketName(), tempFilename)); return null; }
final Long lastFullyDownloadedPartPosition) assertParameterNotNull(getObjectRequest, "A valid GetObjectRequest must be provided to initiate download"); assertParameterNotNull(file, "A valid file must be provided to download into"); appendSingleObjectUserAgent(getObjectRequest); String description = "Downloading from " + getObjectRequest.getBucketName() + "/" + getObjectRequest.getKey(); TransferProgress transferProgress = new TransferProgress(); .setGeneralProgressListener(new ProgressListenerChain(new TransferCompletionFilter(), listenerChain)); transferProgress.setTotalBytesToTransfer(totalBytesToDownload); startingByte = startingByte + fileLength; getObjectRequest.setRange(startingByte, lastByte); transferProgress.updateProgress(Math.min(fileLength, totalBytesToDownload)); totalBytesToDownload = lastByte - startingByte + 1; if (log.isDebugEnabled()) {
@Test public void testAddAndRemoveListeners() { ProgressListener listener1 = new ProgressListener() { @Override public void progressChanged(ProgressEvent progressEvent) { // NoOp for this test } }; ProgressListener listener2 = new ProgressListener() { @Override public void progressChanged(ProgressEvent progressEvent) { // NoOp for this test } }; ProgressListenerChain chain = new ProgressListenerChain(listener1); chain.addProgressListener(listener2); List<ProgressListener> listeners = chain.getListeners(); assertEquals(listeners.size(), 2); chain.removeProgressListener(listener1); listeners = chain.getListeners(); assertEquals(listeners.size(), 1); assertSame(listeners.get(0), listener2); } }
AmazonClientException { appendSingleObjectUserAgent(copyObjectRequest); assertParameterNotNull(copyObjectRequest.getSourceBucketName(), "The source bucket name must be specified when a copy request is initiated."); assertParameterNotNull(copyObjectRequest.getSourceKey(), "The source object key must be specified when a copy request is initiated."); assertParameterNotNull(copyObjectRequest.getDestinationBucketName(), TransferProgress transferProgress = new TransferProgress(); transferProgress.setTotalBytesToTransfer(metadata.getContentLength()); ProgressListenerChain listenerChain = new ProgressListenerChain( new TransferProgressUpdatingListener(transferProgress)); CopyImpl copy = new CopyImpl(description, transferProgress, listenerChain,
if ( leavesRoot(destinationDirectory, s.getKey()) ) { throw new RuntimeException("Cannot download key " + s.getKey() + ", its relative path resolves outside the parent directory."); ProgressListenerChain additionalListeners = new ProgressListenerChain(); TransferProgress transferProgress = new TransferProgress(); transferProgress.setTotalBytesToTransfer(totalSize); .<GetObjectRequest>withGeneralProgressListener( listener); downloads.add((DownloadImpl) doDownload( req, f,
final ProgressListenerChain additionalListeners = new ProgressListenerChain();
@Test public void testProgressListenerChainNoFilters() { final ConcurrentHashMap<ProgressListener, ProgressEvent> listenerMap = new ConcurrentHashMap<ProgressListener, ProgressEvent>(); ProgressListener listener1 = new ProgressListener() { @Override public void progressChanged(ProgressEvent progressEvent) { if (listenerMap.get(this) != null) { fail("recieved unexpected event"); } else { listenerMap.put(this, progressEvent); } } }; ProgressListener listener2 = new ProgressListener() { @Override public void progressChanged(ProgressEvent progressEvent) { if (listenerMap.get(this) != null) { fail("recieved unexpected event"); } else { listenerMap.put(this, progressEvent); } } }; ProgressListenerChain chain = new ProgressListenerChain(listener1, listener2); ProgressEvent event = new ProgressEvent(0); chain.progressChanged(event); assertSame(listenerMap.get(listener1), event); assertSame(listenerMap.get(listener2), event); }
/** * Removes the specified progress listener from the list of progress * listeners receiving updates about this transfer's progress. * * @param listener * The progress listener to remove. */ public synchronized void removeProgressListener(ProgressListener listener) { listenerChain.removeProgressListener(listener); }
@Override public boolean isSyncCallSafe() { return progressListenerChain == null || progressListenerChain.isSyncCallSafe(); } }
final boolean resumeOnRetry) assertParameterNotNull(getObjectRequest, "A valid GetObjectRequest must be provided to initiate download"); assertParameterNotNull(file, "A valid file must be provided to download into"); appendSingleObjectUserAgent(getObjectRequest); String description = "Downloading from " + getObjectRequest.getBucketName() + "/" + getObjectRequest.getKey(); TransferProgress transferProgress = new TransferProgress(); .setGeneralProgressListener(new ProgressListenerChain(new TransferCompletionFilter(), listenerChain)); transferProgress.setTotalBytesToTransfer(totalBytesToDownload); startingByte = startingByte + fileLength; getObjectRequest.setRange(startingByte, lastByte); transferProgress.updateProgress(Math.min(fileLength, totalBytesToDownload)); totalBytesToDownload = lastByte - startingByte + 1; if (log.isDebugEnabled()) {
AmazonClientException { appendSingleObjectUserAgent(copyObjectRequest); assertParameterNotNull(copyObjectRequest.getSourceBucketName(), "The source bucket name must be specified when a copy request is initiated."); assertParameterNotNull(copyObjectRequest.getSourceKey(), "The source object key must be specified when a copy request is initiated."); assertParameterNotNull(copyObjectRequest.getDestinationBucketName(), TransferProgress transferProgress = new TransferProgress(); transferProgress.setTotalBytesToTransfer(metadata.getContentLength()); ProgressListenerChain listenerChain = new ProgressListenerChain( new TransferProgressUpdatingListener(transferProgress)); CopyImpl copy = new CopyImpl(description, transferProgress, listenerChain,
if ( leavesRoot(destinationDirectory, s.getKey()) ) { throw new RuntimeException("Cannot download key " + s.getKey() + ", its relative path resolves outside the parent directory."); ProgressListenerChain additionalListeners = new ProgressListenerChain(); TransferProgress transferProgress = new TransferProgress(); transferProgress.setTotalBytesToTransfer(totalSize); .<GetObjectRequest>withGeneralProgressListener( listener); downloads.add((DownloadImpl) doDownload( req, f,
final ProgressListenerChain additionalListeners = new ProgressListenerChain();
ProgressListenerChain chain = new ProgressListenerChain( new ProgressListenerChain.ProgressEventFilter() { chain.progressChanged(event); assertSame(listenerMap.get(listener1), event); assertSame(listenerMap.get(listener2), event);
/** * @deprecated Replaced by {@link #removeProgressListener(ProgressListener)} */ @Deprecated public synchronized void removeProgressListener(com.amazonaws.services.s3.model.ProgressListener listener) { listenerChain.removeProgressListener(new LegacyS3ProgressListener(listener)); }
@Override public boolean isSyncCallSafe() { return progressListenerChain == null || progressListenerChain.isSyncCallSafe(); } }
/** * Create a listener chain with a ProgressEventFilter. */ public ProgressListenerChain(ProgressEventFilter progressEventFilter, ProgressListener... listeners) { if (listeners == null) { throw new IllegalArgumentException( "Progress Listeners cannot be null."); } for (ProgressListener listener : listeners) addProgressListener(listener); this.progressEventFilter = progressEventFilter; }