Frage Amazon S3 und Cloudfront mit Java API


Ich verwende derzeit S3 mit der Java-API, um Objekte und deren Inhalt zu erhalten. Ich habe eine Cloudfront-Distribution mit der AWS-Konsole erstellt und meinen S3-Bucket mit meinen Objekten als Bucket-Ursprung festgelegt. Aber ich habe keine Verbesserung der Download-Leistung bemerkt, und ich bemerkte, dass die URL im Konsolenfenster auf s3 verweist:

INFO: Anfrage senden: GET https://mybucket.s3.amazonaws.com /picture.jpg Kopfzeilen: (Bereich: bytes = 5001-1049479, Content-Type: application / x-www-form-urlencoded; charset = utf-8,)

In der Anleitung Erste Schritte für Cloudfront sollte die URL jedoch wie folgt lauten:

http: // (Domäne Name) / Bild.jpg

Wo (Domänenname) ist spezifisch für die Cloudfront-Verteilung. Daher bezieht die Java-API die Datei immer noch von S3 und nicht über Cloudfront

Gibt es trotzdem die Java-API für S3, um Dateien über Cloudfront herunterzuladen? Wenn nicht, was ist der beste Ansatz, den ich verwenden sollte, um Objekte über Cloudfront in meinem Java-Programm zu erhalten? Ich bin immer noch irgendwie neu in diesem Zeug, jede Hilfe sehr geschätzt!


5
2017-07-01 18:06


Ursprung


Antworten:


JAVA API für S3 kann nicht für die Interaktion mit Cloudfront verwendet werden.

Wenn Sie den Inhalt über die Cloud-Front-Distribution herunterladen möchten, müssen Sie Ihren eigenen HTTP-Code schreiben (der einfach sein sollte). Du kannst es auch einfach benutzen http: // (Wolke Domain-Namen) / picture.jpg im Browser und prüfen Sie zuerst die Download-Geschwindigkeit.


1
2018-04-14 09:27



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

Aber Sie sollten wissen, dass es 24 Stunden oder länger dauern kann, bis Änderungen in S3 aktiv sind. Wenn Sie den Stream nicht öffnen können, ist der andere Weg zu verwenden getObject(bucketName, key) Methode.


0
2017-09-21 10:27