如何仅获取以前未访问过的最近添加的 aws s3 对象?

How to fetch only recently added aws s3 objects which were not accessed before?

我在一个存储桶中有多个文件夹,每个文件夹都被命名为唯一的 GUID,并且它始终包含一个文件。

我只需要获取那些以前从未读过的文件。如果我一次获取所有对象然后进行客户端过滤,它可能会在不久的将来引入延迟,因为每天添加的新文件夹数量可能有数百个。

最初我尝试通过指定 StartAfter 来列出对象,但很快我意识到它只适用于按字母顺序排序的列表。 https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html

我正在使用 AWS C# SDK。有人可以给我一些关于最佳方法的想法吗?

谢谢

Amazon S3 不维护 "objects that have not been accessed" 的概念。

但是,有一种不同的方法可以只处理每个对象一次:

  • 创建将在创建对象时触发的Amazon S3 Event
  • 然后事件可以触发:
    • AWS Lambda 函数
    • Amazon SQS 队列
    • 发送消息
    • Amazon SNS 主题发送消息

因此,您可以通过其中一种方法触发您的自定义代码,并且您实际上永远不需要 "search" 新对象。