我想创建并使用AmazonS3EncryptionClient来存储和重新从S3在客户端加密的对象,但是根据AWS documentation <弃用了用于创建具有手动配置的重试的此类对象的API / p>
现在建议使用AmazonS3EncryptionClientBuilder来构建AmazonS3EncryptionClient
。
但是,构建器文档没有提供任何用于添加具有重试策略的clientConfiguration的API ...它只有CryptoConfiguration,它似乎不支持重试配置。
我们是否可以在客户端本身设置S3的重试策略,还是需要在我们的代码库中手动实现?
答案 0 :(得分:0)
你可以通过使用类似的东西来实现这个目标
//Step 1: Create a clientBuilder first
AmazonS3EncryptionClientBuilder builder = AmazonS3EncryptionClientBuilder.standard()
.withEncryptionMaterials(new StaticEncryptionMaterialsProvider(encryptionMaterials))
.withCredentials(new ProfileCredentialsProvider());
//Step 2: Create your custom client configuration for retry policy
ClientConfiguration clientConfiguration = new ClientConfiguration();
//clientConfiguration.setMaxErrorRetry(10);
clientConfiguration.setRetryPolicy(new RetryPolicy(RetryPolicy.RetryCondition.NO_RETRY_CONDITION,
RetryPolicy.BackoffStrategy.NO_DELAY, 10, true));
//Step3: set client Configuration in builder
builder.setClientConfiguration(new ClientConfiguration());
//Step 4: build AWSEncryptionClient
AmazonS3Encryption client = builder.build();
我想知道可以采用更简单(更简单)的方式。但它应该解决你的问题,我已经用过了。
Aws文档并不总是更新,如果在AWS控制台没有任何更改的情况下支持所提供的所有内容,详细了解详细信息会很麻烦。
我希望它有所帮助。干杯!!