17

我必须使用 Amazon S3 以 Java 编程方式上传一些静态内容。当我开始阅读时,我发现要做的方式是通过他们的 SDK(REST API 的包装器)或使用 REST API。从亚马逊的 AWS 网站上,发现了这个:

“您可以使用 REST API 或 AWS 开发工具包向 Amazon S3 发送请求”。

想了解哪种方法更好。我认为使用 SDK 肯定会使编程更容易,但是直接使用 SDK 与 Rest API 的优缺点是什么。

出于某种原因,我发现直接使用 REST API 比使用 SDK 更困难。我能够使用 SDk 做一些基本的事情——创建存储桶、列出对象、获取对象、使缓存无效等。但是在编写 REST API 代码时遇到了一些困难——尤其是生成签名。

如果我最终使用 SDK,这可能并不重要,但我仍然想知道如何使用 REST API 来做到这一点。如果有人在 Java 中有一些关于添加对象、获取对象、获取列表等的优秀代码示例,那将非常有帮助。

谢谢!

4

2 回答 2

16

如果你已经有你的语言的 SDK,去吧;从项目的角度来看,这很容易。SDK 是他们已经为您完成和测试的额外工程,无需额外费用。换句话说,SDK 已经为您将 HTTP REST API 转换为应用程序域/语言。

将 REST API 视为 AWS 必须支持的最低公分母,而 SDK(可能)在其下实现 REST API。在某些情况下(例如:某些 Windows Azure SDK),SDK 实际上更高效,因为它们切换到基于 TCP 的通信通道而不是 REST(即 TCPHTTP),从而消除了一些 HTTP 开销

除非您的全部目标是花费额外的时间(开发 + 测试)来学习底层 REST API,否则我会投票给 SDK。

于 2013-04-02T01:15:14.283 回答
6

在我自己的意见中,API 为您提供了做任何您喜欢的事情的空间。如果您计划在未来更改云服务,它也会有所帮助,但如果使用 sdk 方法,您将不得不再次编码,因为您的应用程序需要更改并且 SDK 嵌入在您的应用程序中。我知道回复晚了,但它可能会对某人有所帮助。

于 2017-06-06T05:59:34.273 回答