AWS提供了几种使用S3的SDK,包括Java、NET、PHP和Ruby。这里展示的例子使用Java SDK来说明如何实现S3数据处理。
  任何使用AWS的应用程序都需要AWS凭据。IAM提供两种基本的方法来支持这一点。凭据可以指定为一个特定用户的访问键/密钥对,或者如果在AWS内执行的话,指定为一个角色。单个用户的凭据在一个属性文件中指定。
  在基于角色安全情况下,以特定角色运行的EC2实例动态生成键。在这种情况下,AWS提供一个特定的API,允许你直接从实例获取凭据。获取凭据时,支持编程来决定凭据获取的方式通常很有好处。
在这个代码片段中,首先尝试获取凭据属性,如果文件存在,就使用它来创建凭据。否则,尝试从执行所在的EC2实例获取凭据。使用该代码获取AWS凭据可以用于和AWS服务通信。
  在并行文件上传的情况下,对于目录中的每一个文件,会创建一个新的可运行类并提交给executor。此外,在并行执行的情况下,实现会等待所有的并行上传完成。