以“路径样式”格式生成S3 URL

7

不确定你是否能做到这一点,但我对你为什么喜欢路径样式很感兴趣。 - jarmod
只是想确认是否(不)可能。如果不行,那么更改存储桶名称将是唯一的方法。 - dxuhuang
3
请问您能否编辑一下您的问题,解释一下“路径样式”和“虚拟主机样式”的含义,以便于未来的读者更好地理解? - John Rotenstein
2
@jarmod,如果您的存储桶名称中有点,则需要使用路径样式,以便SSL正常工作。 "更改存储桶名称"的引用似乎暗示了这可能是遇到的未声明问题,并且第一个链接也表明了同样的事情。我怀疑就是这个原因,因为我实在想不出其他理由来解释这种行为。 - Michael - sqlbot
1个回答

5

我找到了解决方案。

您可以通过在AmazonS3ClientBuilder上调用withPathStyleAccessEnabled(true)来创建您的AmazonS3Client。例如,在以下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将是路径样式。

如果我看到Java SDK Amazon S3中配置路径样式,我就不会麻烦地问这个问题了...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接