And*_*dre 1 java amazon-s3 amazon-web-services
我正在使用 JAVA AWS SDK 将数千张图像上传到我的 s3 存储桶。
我创建了一个静态类型 AmazonS3 变量来连接到存储桶。我正在上传数千张图片,上传时间超过 24 小时。
由于我使用的是静态对象,因此我只需连接到存储桶一次,线程就会进行上传。我想知道在此过程中会话是否会过期,以及正确的方法是否是每次发送图像之前都进行连接。
这就是我实例化它的方式:
return AmazonS3ClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(credentials)).withRegion(Regions.US_EAST_1).build();Run Code Online (Sandbox Code Playgroud)
谢谢!
您从构建器获取的对象AmazonS3(它是 的实例AmazonS3Client)不会维护与 S3 的持久连接。您使用它执行的每个操作(例如putObject或deleteObject)都是一个单独的 HTTP 请求,并且每个操作都使用您提供的凭据进行签名。
因此,客户端的有效时间取决于您使用的凭据类型AWSStaticCredentialsProvider。
如果您传递的对象BasicAWSCredentials(String accessKey, String secretKey)具有永久的、不过期的访问密钥和秘密密钥,那么您可以AmazonS3根据需要使用该对象。
如果您AWSStaticCredentialsProvider实际上正在包装BasicSessionCredentials对象,那么这些凭据最终会过期,因为会话凭据是临时的(会话凭据的有效期限为 15 分钟到 36 小时)。
| 归档时间: |
|
| 查看次数: |
1539 次 |
| 最近记录: |