【问题标题】:How to configure retry in AmazonS3EncryptionClient如何在 AmazonS3EncryptionClient 中配置重试
【发布时间】:2018-04-19 09:17:42
【问题描述】:

我想创建和使用AmazonS3EncryptionClient 来存储和检索在客户端从 S3 加密的对象,但是根据AWS documentation,不推荐使用用于创建具有手动配置重试的此类对象的 API

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

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

【问题讨论】:

    标签: amazon-web-services amazon-s3


    【解决方案1】:

    你可以通过使用类似这样的东西来实现这一点

    //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(clientConfiguration);
    
    //Step 4: build AWSEncryptionClient
    
        AmazonS3Encryption client = builder.build();
    

    我想知道有没有更容易(更简单)的方法来做到这一点。不过应该能解决你的问题,我用过。

    AWS 文档并不总是更新,如果在 AWS 控制台中不做任何更改,是否支持所有提供的东西,这有点令人痛苦。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多