0
我想仅提取之前从S3存储桶中读取的文件。我也需要他们的文件名,以便我知道在每次迭代中处理哪些文件。获取S3存储桶中的最新文件
我决定我现在不想实现一个队列监听器,所以使用通知不是我想要的。
我考虑过使用downloadBucket API并打开“调试”,然后解析结果以找到下载的文件。
有谁知道更好的方法,或者如果打开调试会影响性能?
我正在使用laravel/php来执行此操作。
我想仅提取之前从S3存储桶中读取的文件。我也需要他们的文件名,以便我知道在每次迭代中处理哪些文件。获取S3存储桶中的最新文件
我决定我现在不想实现一个队列监听器,所以使用通知不是我想要的。
我考虑过使用downloadBucket API并打开“调试”,然后解析结果以找到下载的文件。
有谁知道更好的方法,或者如果打开调试会影响性能?
我正在使用laravel/php来执行此操作。
S3在list_objects中没有过滤器功能。因此,你可以做的最好的事情是将处理后的文件移动到新的存储桶或前缀。所以你不必担心哪个键被“处理”。
因此你可以这样做(算法,而不是代码)
- store new_key to new/ folder
- select everything in new/ prefix
- process each key
- copy key to proceesed/ prefix
- delete key in new/ prefix
注:每1000 PUT /复印/ POST/LIST将花费你0.005美分。所以谨慎使用它。
我认为S3并不是一个简单的方法,因为S3只是裸存储。 – markvdlaan93
*“我决定现在不想实现队列监听器”*考虑到这实际上是最佳解决方案......为什么不呢? –
@ Michael-sqlbot a)我需要实现一个监听器 - 这是更多的代码,这意味着花费更多的时间。 b)如果我有两个系统需要对同一个目录执行此操作 - 这可能会带有两个队列,但这并不会随着我的努力而扩展 - 这很昂贵。 – NiRR