2011-07-01 37 views
5

Obecnie używam S3 z Java API, aby uzyskać obiekty i ich zawartość. Stworzyłem dystrybucję Cloudfront za pomocą konsoli AWS, a ja ustawiłem moje wiadro S3 z moimi obiektami jako pochodzenie łyżki. Ale nie zauważyłem poprawy wydajności pobierania i zauważyłem, że w oknie konsoli adres URL to s3:Amazon S3 i Cloudfront z Java API

INFO: Żądanie wysyłania: GET https://mybucket.s3.amazonaws.com /picture.jpg Nagłówki: (Zakres: bajty = 5001- 1049479, Content-Type: application/x-www-form-urlencoded; charset = uTF-8)

natomiast w podręczniku Rozpoczęcie CloudFront URL powinny być:

http://(domain nazwa)/obraz .jpg

gdzie (nazwa domeny) jest specyficzna dla dystrybucji Cloudfront. Tak więc Java API nadal pobiera plik z S3, a nie poprzez cloudfront

Czy mimo to używa Java API dla S3 do pobierania plików przez Cloudfront? Jeśli nie, jakie jest najlepsze podejście, jakie powinienem zastosować, aby uzyskać obiekty za pośrednictwem chmury w moim programie java? Wciąż jestem trochę nowy w tej dziedzinie, każda pomoc bardzo doceniona!

Odpowiedz

1

Interfejs API JAVA dla S3 nie może być używany do interakcji z Cloudfront.

Jeśli chcesz pobrać zawartość poprzez dystrybucję w chmurze, musisz napisać własny kod HTTP (co powinno być proste). Możesz także po prostu użyć nazwy domeny z przodu domeny http://(cloud) /picture.jpg w przeglądarce i najpierw sprawdzić prędkość pobierania.

0
URL url = new URL(your_cloudfront_url); 
InputStream in = url.openStream(); 

Ale, powinieneś wiedzieć, że zmiany w S3 mogą być aktywne przez 24 godziny lub więcej. Jeśli nie możesz otworzyć strumienia, innym sposobem jest użycie metody getObject(bucketName, key).