繁体   English   中英

rclone - 如何列出 AWS S3 存储桶中具有最新文件的目录?

[英]rclone - How do I list which directory has the latest files in AWS S3 bucket?

我目前正在使用 rclone 访问 AWS S3 数据,并且由于我不使用任何一个,因此我不是专家。

我正在访问公共存储桶unidata-nexrad-level2-chunks ,我正在查看 1000 个文件夹。 要查看这些,我正在使用 Windows 命令提示符并输入:

rclone lsf chunks:unidata-nexrad-level2-chunks/KEWX

只有一个文件夹具有随时写入的实时数据,而这正是我需要找到的。 我如何确定哪一个是我需要的? 我可以运行检查以查看哪个文件夹具有最新数据。 但是我该怎么做呢?

我的命令的输出如下所示:

1/
10/
11/
12/
13/
14/
15/
16/
17/
18/
19/
2/
20/
21/
22/
23/
... ... ... (to 1000)

我该怎么做才能找到最新数据的写入位置? 由于一次只有一个文件夹,我希望它会很简单。

编辑:我意识到我需要一种方法来列出最新的文件(连同它的文件夹#),而无需列出所有 999 个目录中可能的每个文件和时间戳。 我正在开始赏金,正确的答案使我能够在不费力地完成所有这些问题的情况下做到这一点,将获得赏金。 如果列出所有 999 个文件夹中的所有内容需要 20 分钟,则没有用,因为到那时下一个文件夹将处于活动状态。

如果您想知道包含最新文件的特定文件夹,您应该编写自己的脚本来检索所有对象的列表,然后找出哪个是最新的以及它在哪个存储桶中。这是一个执行此操作的 Python 脚本:

import boto3

s3_resource = boto3.resource('s3')

objects = s3_resource.Bucket('unidata-nexrad-level2-chunks').objects.filter(Prefix='KEWX/')

date_key_list = [(object.last_modified, object.key) for object in objects]

print(len(date_key_list)) # How many objects?

date_key_list.sort(reverse=True)

print(date_key_list[0][1])

输出:

43727
KEWX/125/20200912-071306-065-I

浏览这 43,700 个对象需要一段时间!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM