问题描述
我当前正在使用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)
我该怎么做才能将最新数据写入哪里?由于一次仅一个文件夹,我希望它会很简单。
解决方法
如果您想了解最新文件的特定文件夹,则应编写自己的脚本以检索所有对象的列表,然后找出哪个是最新的,以及哪个在哪个存储桶中。以下是执行该操作的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个对象!