如何在AmazonS3EncryptionClient中配置重试

时间:2018-04-19 09:17:42

标签: amazon-web-services amazon-s3

我想创建并使用AmazonS3EncryptionClient来存储和重新从S3在客户端加密的对象,但是根据AWS documentation <弃用了用于创建具有手动配置的重试的此类对象的API / p>

现在建议使用AmazonS3EncryptionClientBuilder来构建AmazonS3EncryptionClient。 但是,构建器文档没有提供任何用于添加具有重试策略的clientConfiguration的API ...它只有CryptoConfiguration,它似乎不支持重试配置。

我们是否可以在客户端本身设置S3的重试策略,还是需要在我们的代码库中手动实现?

1 个答案:

答案 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控制台没有任何更改的情况下支持所提供的所有内容,详细了解详细信息会很麻烦。

我希望它有所帮助。干杯!!