AWS S3.generatePreSignedURL;使用CNAME有问题

时间:2014-01-24 07:17:41

标签: amazon-web-services amazon-s3 cname

我正在使用generatePreSignedURL生成格式的URL(使用Java SDK):

https://bucketName.s3.amazonaws.com/xyz/1765/1765877/RELATIVE/1765877?Expires=1390547709&AWSAccessKeyId=AKIAIFVBAWRYG72XANJA&Signature=ggHAYRTs2D4BQQnYIierEKGOWz0%3D

我想使用CNAME使用自定义域名。两个问题:

  1. 由于CNAME不适用于HTTPS;我需要使用http。 generatePreSignedURL如何返回http url。这是一个小问题..因为无论如何我可以通过将https替换为http来手动更改它,但看起来并不干净。

  2. 手动更改为http;这个URL bucketName.s3.amazonaws.com到customizeURL.com;我得到SignatureDoesNotMatch !!有关如何解决此问题的任何想法?我的generatePreSignedURL可以返回自定义网址吗?

1 个答案:

答案 0 :(得分:0)

要让generatePreSignedURL为您提供http而不是https网址,您必须使用其他 AmazonS3Client 设置 ClientConfiguration 。我在下面给出了一个例子。

现在无法通过https进行自定义域,因为此时AWS尚未为S3托管客户端证书。

ClientConfiguration clientConfig = new ClientConfiguration();
clientConfig.setProtocol(Protocol.HTTP);
AmazonS3Client s3Client = new AmazonS3Client(awsCredentials, clientConfig);