2017-07-17 111 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