2014-01-24 106 views
1

我使用generatePreSignedURL其生成格式的URL(使用Java SDK):AWS S3.generatePreSignedURL;使用CNAME有問題

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可以返回自定義網址嗎?

回答

0

要有generatePreSignedURL給你一個HTTP,而不是HTTPS URL,你必須設置你的AmazonS3Client具有不同ClientConfiguration。下面給出了一個例子。

由於AWS目前不爲S3提供客戶端證書,因此現在不能通過https定製域。

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