S3 Java SDK手册

安装

Java环境

JDK 6及以上版本

Maven项目中使用

在Maven工程中使用AWS S3 Java SDK只需在pom.xml中加入相应依赖即可

<dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk-s3</artifactId>
    <version>1.11.125</version>
</dependency>
<!--为了支持加密-->
<dependency>
    <groupId>org.bouncycastle</groupId>
    <artifactId>bcprov-jdk15on</artifactId>
    <version>1.55</version>
</dependency>

工程中直接引入jar

  • 下载包含AWS Java SDK及其依赖的开发包: aws-java-sdk.zip
  • 解压该开发包;
  • 将解压后文件夹下lib文件夹中aws-java-sdk-1.11.254.jar(版本可能不一样)的以及third-party/lib文件夹下的所有jar文件拷贝到您的项目中;
  • 在Eclipse中选择您的工程,右击 -> Properties -> Java Build Path -> Add JARs
  • 选中您在第三步拷贝的所有JAR文件
  • 在Intellij Idea中,选取所有的JAR文件,右击 -> Add As Library
  • 如果要使用客户端加密,需要加入 bcprov-jdk15on

前言

Java SDK提供的接口都在AmazonS3中实现,并以成员方法的方式对外提供调用。因此使用Java SDK前必须实例化一个AmazonS3对象。

关于请求参数

AmazonS3中的方法一般都提供两种参数传入方式:

  • 普通传参方式:

example:

 AmazonS3.createBucket(bucketName);
  • request对象传参方式:

example:

 CreateBucketRequest request = new CreateBucketRequest(bucketName);
 request.setCannedAcl(CannedAccessControlList.Private);
 AmazonS3.createBucket(request);

后面的使用指南只以其中的一种传参方式作为例子。

关于异常

所有错误异常包装在两个异常类型中,在调用Java SDK接口的时候,捕捉这些异常并打印必要的信息有利于定位问题(ps:在JAVA SDK使用指南的简单示例代码没有重复赘述,使用时注意添加)。

try{
    s3Client.XXX("XXX");
//捕捉NOS服务器异常错误
}catch (AmazonServiceException e1){
    System.out.println("Error Message:    " + e1.getMessage());    //错误描述信息
    System.out.println("HTTP Status Code: " + e1.getStatusCode()); //错误http状态码
    System.out.println("NOS Error Code:   " + e1.getErrorCode());  //服务器定义错误码
    System.out.println("Error Type:       " + e1.getErrorType());  //客户端的请求错误还是服务端的处理错误
    System.out.println("Request ID:       " + e1.getRequestId());  //请求ID,非常重要,有利于nos开发人员跟踪异常请求的错误原因
//捕捉客户端错误
}catch(SdkClientException e2){
    System.out.println("Error Message: " + e2.getMessage());       //客户端错误信息
}