定期轮询具有大量文件的AWS S3存储桶中的新文件?

时间:2016-03-18 14:14:54

标签: amazon-web-services amazon-s3

我遇到需要轮询AWS S3存储桶以获取新文件的情况。 此外,它不仅仅是一个桶。有大约1000个桶,这些桶可能有很多文件。 这种用例的常用策略/设计是什么?我需要在每次投票时使用新文件。我无法从存储桶中删除文件。

2 个答案:

答案 0 :(得分:8)

您应该订阅S3事件通知,而不是轮询:http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html

可以将这些内容传递给SNS主题,SQS队列或触发Lambda函数。

答案 1 :(得分:1)

嗯,为了最好地回答这个问题,我们需要知道什么样的应用程序/架构正在进行轮询和消费,但是#' AWS'这样做的方法是让S3在创建每个文件时发送S3通知。 S3通知包含对S3文件的引用,可以转到SNS或SQS,甚至更好的Lambda,然后触发应用程序启动,使用文件然后关闭。

现在,如果您将拥有大量文件,那么所有这些SNS / SQS通知都会变得昂贵,有些人可能会开始考虑使用S3 SDK / CLI持续轮询S3,但是您需要请记住,与轮询相关的成本也是如此,您应该考虑减少文件数量的方法。例如,如果您使用Kinesis Firehose转储到S3,请查看批处理。或者您可以批量处理SQS。尽量坚持使用事件通知,它更具弹性。