gpt4 book ai didi

java - 仅删除 SQS 消息,而不删除底层 S3 对象

转载 作者:行者123 更新时间:2023-11-30 07:09:24 26 4
gpt4 key购买 nike

我正在使用 amazon sqs java 扩展客户端库将所有 SQS 消息存储在 S3 中。当我使用 Amazon SQS Web 界面删除消息时,消息仅从 SQS 队列中删除,而不是从 S3 中删除。但是,当我使用 aws java sdk sqs 客户端/扩展库客户端时,该消息会从 SQS 和 S3 中删除。我希望保留 S3 中的实际消息,但删除 SQS 消息。有没有办法使用 aws java sdk sqs 客户端或扩展客户端以编程方式实现此目的?

最佳答案

您可以创建(并维护)扩展客户端库的自定义版本,但从长远来看,这不是一个很好的解决方案。

另一种选择是使用 S3 事件通知,它可以为上传到 S3 存储桶的每个文件自动创建 SQS 消息。您的生产者需要更改为使用 S3 API 上传文件(而不是使用扩展客户端库对消息进行排队)。您的消费者将继续使用 SQS 来接收消息,但会使用普通库而不是扩展库。您的 S3 存储桶将是 configured to send event notifications .

也许另一种选择是尝试模仿您通过 SQS 控制台手动执行的操作。如果您可以通过使用扩展客户端库接收 SQS 消息(以及存储在 S3 中的消息正文)来获得您正在寻找的效果,我不会感到惊讶。然后,使用普通的客户端库删除该消息。由于普通客户端库不知道消息的 S3 组件,因此不应删除 S3 文件。

关于java - 仅删除 SQS 消息,而不删除底层 S3 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39458929/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com