我试图使用下面的代码
获取给定s3前缀中的最新文件夹例如:
S3A://mybucket/data/timestamp=20180612165132/part1.parquete S3A://mybucket/data/timestamp=20180612165132/part2.parquete S3A://mybucket/data/timestamp=20180613165132/part1.parquete S3A://mybucket/data/timestamp=20180614165132/part1.parquete S3A://mybucket/data/timestamp=20180615165132/part1.parquete
我需要找到数据文件夹下的最新时间戳文件夹..
keys = []
oldest = None
kwargs = {'Bucket': bucket_name, 'Prefix': key}
while True:
resp = get_conn().list_objects_v2(**kwargs)
for obj in resp['Contents']:
keys.append({'Key': obj['Key'], 'LastModified': obj['LastModified']})
try:
kwargs['ContinuationToken'] = resp['NextContinuationToken']
except KeyError:
break
logger.info("Got {0} keys".format(len(keys)))
for key in keys:
oldest = key['LastModified'] if oldest is None or key['LastModified'] < oldest else oldest
return oldest
问题是我在每个timestamp文件夹下有100个文件,在上面的im中获取每个文件的时间戳,找到每个timestamp文件夹下的最旧文件,以了解时间戳文件夹创建日期
我使用此代码作为s3将整个事物视为1个对象
s3a://mybucket/data/timestamp=20180612165132/part1.parquete
无法获取timestamp文件夹的LastModifiedDate
这是非常昂贵的我觉得可以有数百个时间戳文件夹,每个文件夹有100个文件..
有没有最好的方法来实现这个目标?
答案 0 :(得分:0)
正如Josh在评论中所说:没有目录,因此没有目录时间戳。
这些工具只是用来构成它们的,例如S3AFileStatus中。
一些想法
选项2可能最快