2013-04-02 19 views
5

Ich muss Amazon S3 verwenden, um einige statische Inhalte programmatisch in Java hochzuladen. Als ich zu lesen begann, fand ich heraus, dass entweder das SDK (Wrapper over REST APIs) oder REST APIs verwendet werden müssen. Auf der AWS-Website von Amazon finden Sie Folgendes:Amazon S3: SDK oder REST API

"Sie können Anfragen an Amazon S3 mit der REST-API oder dem AWS SDK senden".

Wollte verstehen, welcher Ansatz besser ist. Ich denke, die Verwendung von SDK wird definitiv die Programmierung erleichtern, aber was sind die Vor- und Nachteile der direkten Verwendung von SDK Vs Rest APIs?

Aus irgendeinem Grund fand ich REST API direkt schwieriger als SDK. Ich konnte grundlegende Dinge mit SDk tun - Eimer erstellen, Objekte auflisten, Objekt holen, Cache leeren usw. Aber es war schwer, den Code für REST API zu schreiben - besonders die Signatur zu generieren.

Vielleicht wird es nicht viel ausmachen, wenn ich letztendlich SDK verwende, aber ich würde immer noch gerne wissen, wie man es mit REST APIs macht. Wenn jemand in Java einige gute Codebeispiele zum Hinzufügen von Objekten, zum Abrufen von Objekten, zum Abrufen von Listen usw. hat, wäre das sehr hilfreich.

Danke!

+0

Gehen Sie für das SDK. Ich benutze C++ (das kein SDK hat) und gehe eher auf die Verwendung von Embedded Python und Python SDK als auf die Verwendung der REST API ein. Es macht keinen Sinn, etwas zu implementieren, zu debuggen und zu warten, was bereits erledigt ist. Auch die REST-API von Amazon ist schlecht dokumentiert und oft nicht intuitiv. – Dave

+0

Ich denke, es ist sehr wertvoll, ein wenig von der REST-API direkt verwenden zu können, damit Sie verstehen, was vor sich geht. Aber ich würde das SDK für echte Arbeit verwenden. –

+0

Danke Jungs für Ihren Vorschlag. Ich würde nur für SDK gehen. – user1270392

Antwort

6

Wenn Sie bereits das SDK in Ihrer Sprache haben, gehen Sie darauf; es ist ein Kinderspiel aus der Sicht eines Projekts. Das SDK ist ein zusätzliches Engineering, das sie bereits ohne zusätzliche Kosten für Sie durchgeführt und getestet haben. Mit anderen Worten, das SDK konvertiert die HTTP-REST-API bereits in die Anwendungsdomäne/-sprache für Sie.

Stellen Sie sich die REST-API als den kleinsten gemeinsamen Nenner vor, den AWS unterstützen muss und dass das SDK (wahrscheinlich) die darunter liegende REST-API implementiert. In einigen Fällen (z. B. einige Windows Azure SDKs) sind die SDKs tatsächlich effizienter, da sie anstelle von REST (das heißt TCP plus HTTP) auf einen TCP-basierten Kommunikationskanal umschalten, wodurch ein Teil des HTTP-Overheads

entfällt

Wenn Ihr gesamtes Ziel nicht darin besteht, zusätzliche Zeit zu investieren (Entwicklung + Testen), nur um die zugrunde liegende REST-API zu erlernen, würde ich SDK wählen.

+0

Danke Sid für deine Antwort! – user1270392

1

In meiner eigenen Meinung die API gibt Ihnen Raum zu tun, was auch immer Sie mögen.Es hilft auch, wenn Sie einen Cloud-Dienst in der Zukunft planen, aber wenn der SDK-Ansatz verwendet wird, müssen Sie erneut als Ihre App Code erfordert eine Änderung und das SDK ist in Ihrer App eingebettet. Ich weiß, dass die Antwort zu spät ist, aber es könnte jemandem helfen.