在"路径风格"中生成S3 URL格式

时间:2017-10-19 22:05:11

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

https://wincent.com/wiki/HTTPS_access_to_Amazon_S3_buckets http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html

有没有办法使用Java SDK以路径样式而不是虚拟主机样式生成预先签名的S3临时URL?

编辑:澄清:

路径风格意味着https://my.bucket.s3.amazon.aws.com/my_item?...

虚拟主机样式意味着https://maps.googleapis.com/maps/api/place/details/json?placeid={place_id}&key={api_key}

1 个答案:

答案 0 :(得分:1)

我找到了解决方案。

您可以通过AmazonS3Client上的withPathStyleAccessEnabled(true)来创建AmazonS3ClientBuilder。例如,在以下Scala代码中:

val amazonS3Client = AmazonS3ClientBuilder.standard()
  .withRegion(Regions.US_EAST_1)
  .withCredentials(awsCredentialsProvider)
  .withPathStyleAccessEnabled(true)
  .build()

然后以通常的方式生成URL。

val generatePresignedUrlRequest = new GeneratePresignedUrlRequest(bucketName, objectName)
...
amazonS3Client.generatePresignedUrl(generatePresignedUrlRequest).toString

生成的URL将是路径样式。

如果我看到Configure path-style in Java SDK Amazon S3 ...

,我不会打扰这个问题