【问题标题】:S3 path configuration and SQS Extended Client LibraryS3 路径配置和 SQS 扩展客户端库
【发布时间】:2022-07-25 19:13:38
【问题描述】:

我想将进入特定 SQS 队列的所有消息保存在已创建的 s3 存储桶中。

但我想将这些消息保存在某些目录中,以便按日期和时间进行搜索。

S3Client 拥有software.amazon.awssdk.services.s3.model.PutObjectRequest

我可以在哪里确定存储桶、保存对象的路径和一些标头

PutObjectRequest objectRequest =
    PutObjectRequest.builder()
        .bucket(bucketName)
        .key(s3Path)
        .metadata(keyAndMetadata.getMetadata())
        .build();

在那之后s3Client.putObject(objectRequest, body) 做事

现在,我想使用ExtendedClientConfiguration以类似的方式配置s3,但我只能看到非常简单的输入参数

 ExtendedClientConfiguration extendedClientConfiguration =
      new ExtendedClientConfiguration()
          .withPayloadSupportEnabled(s3Client, bucketName, false)
          .withAlwaysThroughS3(true);

然后,我们创建了扩展的 Sqs 客户端,无法更广泛地配置 s3

AmazonSQSExtendedClient amazonSQSExtendedClient = new AmazonSQSExtendedClient(sqsClient, extendedClientConfiguration);

我知道我可能可以将所有发送到 SQS 的消息单独保存到 s3,但我最好在客户端级别配置所有这些。有人有什么想法吗?

【问题讨论】:

    标签: java amazon-web-services amazon-s3 amazon-sqs


    【解决方案1】:

    我发现无法在客户端级别配置 s3 路径。但是备份到 s3 并不是为了这个目的而创建的,保存到 s3 可能应该以不同的方式处理。当文件从 SQS 中消失时从 s3 中删除文件是使用此库的最佳选择。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-22
      • 2011-09-27
      • 2012-04-18
      • 2022-09-29
      • 1970-01-01
      • 2018-04-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多