【问题标题】:Setting AWS S3 Region设置 AWS S3 区域
【发布时间】:2017-11-19 01:36:04
【问题描述】:

我正在尝试使用以下 java 代码创建一个 aws s3 存储桶。

AmazonS3 s3client = AmazonS3ClientBuilder.defaultClient();
    s3client.setRegion(Region.getRegion(Regions.AP_SOUTH_1));

但我收到以下错误:

“异常”:“com.amazonaws.SdkClientException”, "message": "无法通过区域提供者链找到区域。必须在构建器或设置环境中提供显式区域以提供区域。"

我是否试图以不正确的方式设置区域?请指教。

【问题讨论】:

  • 只需将“ap-south-1”作为字符串传递。
  • 实际上,我必须在安装 AWS CLI 后将其设置为配置文件中的属性。虽然该区域现在正在被拾取,但我收到一个不同的错误,指出 400 Bad Request。
  • 如果您使用的是 aws cli,请确保用户有权创建存储桶,并且存储桶名称是否符合以下要求:存储桶名称的长度可以在 3 到 63 个字符之间,并且只能包含小写字符、数字、句点和破折号。存储桶名称中的每个标签都必须以小写字母或数字开头。存储桶名称不能包含下划线、以破折号结尾、具有连续句点或在句点旁边使用破折号。存储桶名称不能格式化为 IP 地址(198.51.100.24)。

标签: java amazon-web-services amazon-s3 aws-java-sdk


【解决方案1】:

您收到错误的原因是您没有使用 Eclipse 设置 AWS。

如果您使用 Eclipse 作为 IDE,请阅读: http://docs.aws.amazon.com/toolkit-for-eclipse/v1/user-guide/welcome.html

配置文件设置好后

AmazonS3 s3 = new AmazonS3Client(new ProfileCredentialsProvider());

区域 apSouth1 = Region.getRegion(Regions.AP_SOUTH_1);

s3.setRegion(apSouth1);

还要确保导入:

导入 com.amazonaws.regions.Region;

导入 com.amazonaws.regions.Regions;

【讨论】:

  • 实际上,我确实使用 eclipse 设置了 AWS。凭据也在 .aws/config 文件和环境变量中设置。正如我在调试过程中看到的那样,正在选择区域和凭据,但仍然,我收到 400 Bad request 错误。
  • 在您的情况下,因为您正在创建 s3 存储桶 - 400 Bad request 错误意味着 InvalidBucketName - 指定的存储桶无效。存储桶名称的长度必须至少为 3 且不超过 63 个字符。存储桶名称必须是一系列一个或多个标签。相邻标签由单个句点 (.) 分隔。存储桶名称可以包含小写字母、数字和连字符。每个标签必须以小写字母或数字开头和结尾。存储桶名称不得格式化为 IP 地址(例如 192.168.5.4)。
【解决方案2】:

如果您没有使用任何代理并且您已经设置了凭据,则可以使用以下代码:

AmazonS3 s3client = AmazonS3ClientBuilder.standard()
.withRegion(Region.getRegion(Regions.AP_SOUTH_1));

但如果您需要设置代理并手动设置凭据,您可以使用以下代码:

AWSCredentials cred = new BasicAWSCredentials(<accessKey>,<secretKey>);
AmazonS3 s3client = AmazonS3ClientBuilder.standard()
.withCredentials(new AWSStaticCredentialsProvider(cred))
.withClientConfiguration(<your configuration>)
.withRegion(Region.getRegion(Regions.AP_SOUTH_1));

【讨论】:

    猜你喜欢
    • 2017-01-28
    • 2018-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-16
    相关资源
    最近更新 更多