AWS开发工具包 - AmazonS3ClientBuilder实例是否过期?

时间:2017-10-02 22:14:49

标签: java amazon-web-services amazon-s3

我使用JAVA AWS SDK将数千张图片上传到我的s3存储桶。

我创建了一个静态类型的AmazonS3变量来连接到存储桶。我上传了数千张图片,上传时间超过24小时。

由于我使用静态对象,我只需连接到桶一次,然后线程进行上传。我想知道会话是否可以在此过程中到期,以及在发送图像之前每次连接是否正确。

这是我实例化的方式:



return AmazonS3ClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(credentials)).withRegion(Regions.US_EAST_1).build();




谢谢!

1 个答案:

答案 0 :(得分:2)

从构建器获取的AmazonS3对象(AmazonS3Client的实例)不会与S3保持持久连接。您使用它执行的每个操作(例如putObjectdeleteObject)都是单独的HTTP请求,并且每个操作都使用您提供的凭据进行签名。

客户端有效期多长取决于您使用AWSStaticCredentialsProvider包装的凭据类型。

  1. 如果您使用永久,未过期的Access和Secret密钥传递BasicAWSCredentials(String accessKey, String secretKey),则可以根据需要使用AmazonS3对象。

  2. 如果您的AWSStaticCredentialsProvider实际上正在包装BasicSessionCredentials对象,那么这些凭据最终会过期,因为会话凭据是临时的(会话凭据有效期为15分钟到36小时之间)