AWS S3.generatePreSignedURL; При использовании 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. Как может генерировать PreSignedURL вернуть URL-адрес http. Это небольшая проблема... потому что я все равно могу изменить его вручную, заменив https на http, но это не выглядит чисто.

  2. После изменения вручную на http; и этот URL-адрес bucketName.s3.amazonaws.com для customizeURL.com; Я получаю подпись DoesNotMatch! Есть идеи, как это исправить? Может ли мой generatePreSignedURL вернуть настроенный URL?

1 ответ

Для того, чтобы generatePreSignedURL предоставил вам http вместо https URL, вам нужно настроить AmazonS3Client с другой ClientConfiguration. Я привел пример ниже.

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

ClientConfiguration clientConfig = new ClientConfiguration();
clientConfig.setProtocol(Protocol.HTTP);
AmazonS3Client s3Client = new AmazonS3Client(awsCredentials, clientConfig);
Другие вопросы по тегам