You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by dk...@apache.org on 2011/09/19 23:09:35 UTC

svn commit: r1172822 - in /camel/branches/camel-2.8.x: ./ components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Endpoint.java

Author: dkulp
Date: Mon Sep 19 21:09:34 2011
New Revision: 1172822

URL: http://svn.apache.org/viewvc?rev=1172822&view=rev
Log:
Merged revisions 1159408 via svnmerge from 
https://svn.apache.org/repos/asf/camel/trunk

........
  r1159408 | cmueller | 2011-08-18 16:39:24 -0400 (Thu, 18 Aug 2011) | 2 lines
  
  CAMEL-4344: S3Endpoint requires ListAllMyBuckets permission
  Thanks Brendan Long for the patch
........

Modified:
    camel/branches/camel-2.8.x/   (props changed)
    camel/branches/camel-2.8.x/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Endpoint.java

Propchange: camel/branches/camel-2.8.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: camel/branches/camel-2.8.x/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Endpoint.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Endpoint.java?rev=1172822&r1=1172821&r2=1172822&view=diff
==============================================================================
--- camel/branches/camel-2.8.x/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Endpoint.java (original)
+++ camel/branches/camel-2.8.x/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Endpoint.java Mon Sep 19 21:09:34 2011
@@ -16,13 +16,12 @@
  */
 package org.apache.camel.component.aws.s3;
 
-import java.util.List;
-
+import com.amazonaws.AmazonServiceException;
 import com.amazonaws.auth.AWSCredentials;
 import com.amazonaws.auth.BasicAWSCredentials;
 import com.amazonaws.services.s3.AmazonS3Client;
-import com.amazonaws.services.s3.model.Bucket;
 import com.amazonaws.services.s3.model.CreateBucketRequest;
+import com.amazonaws.services.s3.model.ListObjectsRequest;
 import com.amazonaws.services.s3.model.ObjectMetadata;
 import com.amazonaws.services.s3.model.S3Object;
 
@@ -76,11 +75,14 @@ public class S3Endpoint extends Schedule
         String bucketName = getConfiguration().getBucketName();
         LOG.trace("Quering whether bucket [{}] already exists...", bucketName);
         
-        List<Bucket> buckets = getS3Client().listBuckets();
-        for (Bucket bucket : buckets) {
-            if (bucketName.equals(bucket.getName())) {
-                LOG.trace("Bucket [{}] already exist", bucketName);
-                return;
+        try {
+            getS3Client().listObjects(new ListObjectsRequest(bucketName, null, null, null, 0));
+            LOG.trace("Bucket [{}] already exists", bucketName);
+            return;
+        } catch (AmazonServiceException ase) {
+            /* 404 means the bucket doesn't exist */
+            if (ase.getStatusCode() != 404) {
+                throw ase;
             }
         }