2014-01-24 2 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 настраиватьURL.com; Я получаю SignatureDoesNotMatch !! Любая идея о том, как это исправить? Может ли my generatePreSignedURL вернуть настроенный URL?

ответ

0

Чтобы generatePreSignedURL дать вам HTTP вместо HTTPS URL, вы должны настроить ваш AmazonS3Client с другим ClientConfiguration. Я привел пример ниже.

Настраиваемый домен по https теперь невозможен, так как AWS в это время не принимает сертификаты клиентов для S3.

ClientConfiguration clientConfig = new ClientConfiguration(); 
clientConfig.setProtocol(Protocol.HTTP); 
AmazonS3Client s3Client = new AmazonS3Client(awsCredentials, clientConfig); 
Смежные вопросы