我正在使用Amazon 提供的AWS Java SDK与 S3 服务进行交互。
似乎默认情况下,SDK 对存储桶使用虚拟主机样式(即存储桶由存储桶名称.s3.amazonaws.com 引用。例如:
PUT / HTTP/1.1
Host: a-given-bucket.s3.amazonaws.com
Date: Tue, 26 Jun 2012 10:39:40 GMT
Content-Type: application/x-www-form-urlencoded; charset=utf-8
Content-Length: 0
但是,我需要在我的应用程序中使用路径样式,如下所示:
PUT /a-given-bucket/ HTTP/1.1
Host: s3.amazonaws.com
Date: Thu, 21 Jun 2012 16:27:32 GMT
Content-Type: application/x-www-form-urlencoded; charset=utf-8
Content-Length: 0
请问Java SDK可以使用path-style吗?在积极的情况下,我该怎么做?我查看了 ClientConfiguration 和 AmazonS3Client 类,但我没有看到任何方法来做到这一点......
如果重要的话,我的 SDK 版本是:2.0.0v201206151133。
谢谢!
费尔明
PD。为简单起见,示例中省略了一些标题。
编辑: 这样的功能(用于配置 AmazonS3Client 使用的 URL 路径样式)在您有带有点(“。”)的存储桶的情况下非常有用。具有虚拟主机样式的 HTTPS 请求不起作用,请参阅this和this。