如何仅获取以前未访问过的最近添加的 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" 新对象。
我在一个存储桶中有多个文件夹,每个文件夹都被命名为唯一的 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" 新对象。