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}
答案 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将是路径样式。
,我不会打扰这个问题