为了访问桶,我们使用AWS Java API。我们将使用API的2.0版本,但在撰写本文时,这是一个非常新的版本,因此您在互联网上找不到许多代码示例。版本1与版本2不兼容,不同的子版本之间也不兼容,因此我们必须非常小心地选择我们使用的API版本。在本单元中,我们将同时使用1.x版本和2.x版本。这是因为AWS上的大多数Java文档都是1.x版本。
由于用于完成简单任务的类和接口很多。这是因为AWS并非用原生Java构建,因此每个数据结构都将有一个Java类/对象来提供对它的语言级访问。即使是对AWS接口的调用结果也将返回Java对象而不是简单的Java原始数据类型。习惯这一点需要一段时间。您还应该注意,所有类都记录在Java API文档中,因此当您遇到困难时,您需要学会如何导航文档。
在本实验室剩余的部分,我们将操纵桶中的对象。在本单元中,我们不需要以编程方式操纵桶本身,而是我们将使用AWS控制台界面来操纵桶。但是,也有一整套Java API类和接口,用于在您的Java程序中操纵桶,您可以在自己的时间里尝试。
我们使用Maven通过从Maven仓库加载所有适当的类来构建我们的Java程序。依赖关系和其他配置信息由pom.xml文件指定。
我们可以添加与上周我们使用的pom.xml相关的S3依赖,并在本周用于S3。在后续的实验室会话中,我们将仅指定我们使用的亚马逊产品的相关API,您将需要将其插入类似于这个文件中的文件。请注意,此文件包含一些额外的指令,以便于您调试。这不是一个最小的pom.xml文件。例如,它包括shade插件,允许您在target目录运行jar文件。它还指定了UTF-8编码,以消除一些烦人的警告信息。
第二个重要的“设置”活动是导入您在程序中使用的所有API类、接口、异常等。这些应该逐个导入,以帮助减小代码大小并帮助分析您的代码。AWS API是一个非常大的软件片段,因此这并不像听起来那么容易。您需要非常熟悉API文档,以找出应该从哪里导入类、接口和异常。在线会话中将显示一些这样做的技巧。本周我们需要的S3依赖项是:
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>s3</artifactId>
<version>2.5.0</version>
</dependency>
我们可以将此依赖项与上周的pom.xml文件一起添加,并在本周用于S3。
我们已经知道在Cloud9中创建新的maven应用的命令,如下所示。
mvn -B archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=au.edu.scu.app -DartifactId=s3app
附加文件:
- pom.xml 使用ReadSpeaker docReader打开此文档 2.023 KB
从桶中读取对象
有很多方法可以从桶中获取对象。我们可以将对象读入程序中的一个Java对象,我们可以将对象读入当前机器中的一个文件,我们可以将对象作为输入流读取,我们还可以使用多部分读取来读取大对象。这里我们将看一个技术,将对象读入本地文件。如果我们希望操纵对象,我们可以打开文件并使用标准的Java文件处理读取其数据。
为了将对象读入本地文件系统,我们可以编写以下代码(完整程序)。这里我们打算从本实验室会话中较早创建的桶中读取index.html文件。您的桶名称将不同!
我们需要导入以下类。
package au.edu.scu.app;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.se