2013-04-02 4 views
5

Я должен использовать Amazon S3 для загрузки некоторого статического содержимого программным способом в Java. Когда я начал читать, я обнаружил, что способ сделать это либо через их SDK (обертка поверх API REST), либо с помощью API REST. С сайта AWS Amazon нашлось следующее:Amazon S3: SDK или REST API

«Вы можете отправлять запросы на Amazon S3 с помощью REST API или AWS SDK».

Хотел бы понять, какой подход лучше. Я думаю, что использование SDK, безусловно, упростит программирование, но каковы преимущества и недостатки использования API SDK Vs Rest напрямую.

По какой-то причине я нашел использование REST API напрямую сложнее SDK. Я смог сделать базовые вещи, используя SDk - создать ведро, объекты списка, получить объект, сделать недействительным кеш и т. Д. Но было сложно записать код для REST API - особенно создание сигнатуры.

Может быть, это не имеет большого значения, если я в конечном счете использую SDK, но я все равно хотел бы знать, как это сделать, используя API REST. Если у кого-нибудь есть хорошие примеры кода в Java при добавлении объектов, получить объекты, получить список и т. Д., Это было бы очень полезно.

Спасибо!

+0

Идём для SDK. Я использую C++ (у которого нет SDK), и я до крайности использую встроенный python и SDK python вместо использования REST API. Просто нет времени, затрачиваемого на выполнение, отладку и поддержание того, что уже сделано. Также API REST Amazon плохо документирован и часто не интуитивно понятен. – Dave

+0

Я думаю, что очень полезно иметь возможность использовать немного REST API напрямую, поэтому вы понимаете, что происходит. Но я бы использовал SDK для реальной работы. –

+0

Спасибо, ребята, за ваше предложение. Я бы пошел только на SDK. – user1270392

ответ

6

Если у вас уже есть SDK на вашем языке, пойдите для него; это не проблема с точки зрения проекта. SDK - это дополнительная технология, которую они уже сделали и протестировали для вас без каких-либо дополнительных затрат. Другими словами, SDK уже конвертирует HTTP REST API в домен/язык приложения для вас.

Подумайте о том, что API REST является самым низким общим знаменателем, который должен поддерживать AWS, и что SDK (скорее всего) реализует REST API под ним. В некоторых случаях (например, некоторые SDK для Windows Azure) SDK на самом деле более эффективны, поскольку они переключаются на канал связи на основе TCP вместо REST (это TCP плюс HTTP), которые устраняют некоторые из HTTP-накладных расходов

Если ваша цель не тратить дополнительное время (разработка + тестирование), чтобы изучить базовый API REST, я бы проголосовал за SDK.

+0

Спасибо, Сид за ваш ответ! – user1270392

1

В моем собственном мнении API дает вам возможность делать то, что вам нравится. Это также помогает, если вы планируете изменить облачную службу в будущем, но если используется подход sdk, вам придется снова закодировать как приложение потребует изменения, и SDK встроен в ваше приложение. Я знаю, что ответ задерживается, но он может помочь кому-то.

Смежные вопросы