3

我目前正在使用 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 分钟,这是没有用的,因为到那时下一个文件夹将处于活动状态。

4

1 回答 1

1

如果您想知道包含最新文件的特定文件夹,您应该编写自己的脚本来检索所有对象的列表,然后确定哪个是最新的以及它在哪个存储桶中。这是一个 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 个对象需要一段时间!

于 2020-09-12T07:23:45.957 回答