2017-07-17 154 views
1

我試圖使用AWS Java API創建存儲桶,但無法在除US_WEST_1之外的任何區域創建存儲桶。無法在特定區域創建S3存儲桶

import com.amazonaws.AmazonClientException; 
import com.amazonaws.AmazonServiceException; 
import com.amazonaws.auth.profile.ProfileCredentialsProvider; 
import com.amazonaws.regions.Region; 
import com.amazonaws.regions.Regions; 
import com.amazonaws.services.s3.AmazonS3; 
import com.amazonaws.services.s3.AmazonS3Client; 
import com.amazonaws.services.s3.model.CreateBucketRequest; 
import com.amazonaws.services.s3.model.GetBucketLocationRequest; 

public class CreateBucket { 
    private static String bucketName  = "hellobucket6434"; 

    public static void main(String[] args) throws IOException { 
     AmazonS3 s3client = new AmazonS3Client(new ProfileCredentialsProvider()); 
     s3client.setRegion(Region.getRegion(Regions.AP_SOUTH_1)); 


      if(!(s3client.doesBucketExist(bucketName))) 
      { 
       // Note that CreateBucketRequest does not specify region. So bucket is 
       // created in the region specified in the client. 
       s3client.createBucket(new CreateBucketRequest(
         bucketName)); 
      } 
      // Get location. 
      String bucketLocation = s3client.getBucketLocation(new GetBucketLocationRequest(bucketName)); 
      System.out.println("bucket location = " + bucketLocation); 

     } 

下面是當試圖執行拋出的錯誤:

[ERROR] /C:/Users/surya/Desktop/aws-java-sample/src/main/java/com/amazonaws/samp 
les/CreateBucket.java:[20,52] cannot find symbol 
[ERROR] symbol: variable AP_SOUTH_1 
[ERROR] location: class com.amazonaws.regions.Regions 

按照該documentation,AP_SOUTH_1是一個有效的枚舉常量。有些人可以讓我知道我在這裏錯過了什麼。

+1

您正在使用哪個版本的SDK?看來你正在使用一些舊版本。 – kosa

+0

最有可能的版本問題。也可以嘗試使用IDE清理項目。 – Kon

+0

版本1.9.6 ... –

回答

1

該地區在AWS SDK for Java 1.11.11介紹。升級到至少此版本以使用該區域。注意:最好總是使用最新版本。

+0

謝謝!升級了我的版本。它現在有效.. –

+0

很高興它的工作。祝你好運! – kosa