【发布时间】: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