Amazon S3 и Cloudfront с Java API - PullRequest
5 голосов
/ 01 июля 2011

В настоящее время я использую S3 с Java API для получения объектов и их содержимого. Я создал дистрибутив Cloudfront, используя консоль AWS, и я установил S3 bucket с моими объектами в качестве Bucket-origin. Но я не заметил каких-либо улучшений в производительности загрузки, и я заметил, что в окне консоли URL ссылается на s3:

ИНФОРМАЦИЯ: Запрос на отправку: GET https://mybucket.s3.amazonaws.com /picture.jpg Заголовки: (Диапазон: байты = 5001-1049479, Тип содержимого: application / x-www-form-urlencoded; charset = utf-8, )

, тогда как в Руководстве по началу работы для Cloudfront URL должен быть:

http://(domain имя) /picture.jpg

где (имя домена) относится к распределению Cloudfront. Таким образом, Java API все еще получает файл от S3, а не через облачный фронт

Есть ли в любом случае использование Java API для S3 для загрузки файлов через Cloudfront? Если нет, то какой лучший подход я должен использовать для получения объектов через облачный фронт в моей java-программе? Я все еще новичок в этом, любая помощь очень ценится!

Ответы [ 2 ]

2 голосов
/ 14 апреля 2012

JAVA API для S3 нельзя использовать для взаимодействия с Cloudfront.

Если вы хотите загрузить контент через облачный фронт-дистрибутив, вы должны написать свой собственный HTTP-код (который должен быть простым). Вы также можете просто использовать http://(cloud имя переднего домена) /picture.jpg в браузере и сначала проверить скорость загрузки.

0 голосов
/ 21 сентября 2012
URL url = new URL(your_cloudfront_url);
InputStream in = url.openStream();

Но вы должны знать, что изменения в S3 могут занять 24 часа или более. Если вы не можете открыть поток, другой способ - использовать метод getObject(bucketName, key).

...