2017-10-02 23 views
0

私はs3バケットに何千もの画像をアップロードするためにJAVA AWS SDKを使用しています。AWS SDK - AmazonS3ClientBuilderインスタンスの有効期限はありますか?

静的なAmazonS3変数を作成してバケットに接続しました。何千もの画像をアップロードしていますが、アップロードには24時間以上かかります。

静的オブジェクトを使用しているので、私はバケットに一度だけ接続し、スレッドはアップロードを行います。セッションがこのプロセス中に期限切れになる可能性があるかどうか、画像を送信する前に毎回正しい方法で接続するかどうかを知りたいです。

これは私がそれをインスタンス化する方法である:

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

ありがとう!

答えて

1

AmazonS3オブジェクト(AmazonS3Clientのインスタンス)は、S3への永続的な接続を維持しません。あなたがそれを使って行うすべてのアクション(putObjectまたはdeleteObjectなど)は、別々のHTTPリクエストであり、各アクションは指定した認証情報で署名されます。

クライアントの有効期間は、AWSStaticCredentialsProviderでラップしている資格情報の種類によって異なります。あなたは永久的な、無期限のアクセスと秘密キーでBasicAWSCredentials(String accessKey, String secretKey)を渡している場合

  1. は、あなたは限り、あなたが望むようのためAmazonS3オブジェクトを使用することができます。

  2. AWSStaticCredentialsProviderが実際にBasicSessionCredentialsオブジェクトをラップしている場合、セッションクレデンシャルは一時的です(セッションクレデンシャルは15分〜36時間の間有効です)。

+0

ありがとう!私はBasicAWSCredentials(String accessKey、String secretKey)を使用していますが、IAM管理コンソールでaccessKeyとsecretKeyを期限なしに設定するオプションが見つかりませんでした。 – Andre

+1

@Andre IAMコンソールでキーを作成するだけで、キーは期限切れになりません。一時的な資格情報は、すべて別のメカニズムを介して生成されます。 – birryree

関連する問題