request.setContent(input);
final ProgressListener listener = putObjectRequest.getGeneralProgressListener();
publishProgress(listener, ProgressEventType.TRANSFER_STARTED_EVENT);
ObjectMetadata returnedMetadata = null;
try {
returnedMetadata = invoke(request, new S3MetadataResponseHandler(), bucketName, key);
} catch (AmazonClientException ace) {
publishProgress(listener, ProgressEventType.TRANSFER_FAILED_EVENT);
throw ace;
} finally {
try {