Вот ситуация: я работаю удаленно, и в большинстве случаев люди добавляют наборы данных в наш экземпляр Amazon S3.Каждый из этих наборов данных требует очень похожих задач обработки, которые я могу автоматизировать с помощью довольно простого Python.Тем не менее, я не могу выделить наборы данных, которые были добавлены в S3 за последние 24 часа, используя дату изменения.Вот что у меня есть:
import boto3
from boto3.session import Session
ACCESS_KEY = xxxx
SECRET_KEY = xxxx
session = Session(aws_access_key_id=ACCESS_KEY,
aws_secret_access_key=SECRET_KEY)
s3 = session.resource('s3')
s3_client = boto3.client('s3')
def get_all_s3_keys(bucket):
keys = []
kwargs = {'Bucket': bucket}
while True:
resp = s3_client.list_objects_v2(**kwargs)
for obj in resp['Contents']:
keys.append(obj['Key'])
try:
kwargs['ContinuationToken'] = resp['NextContinuationToken']
except KeyError:
break
return keys
bucket_keys = get_all_s3_keys('mybucket')
recnt_keys = [key for key in bucket_keys if 'Temp' in key]
Это вернет все ключи в 'mybucket', содержащие слово «Temp», но это, очевидно, не поможет мне с датой изменения.Как только я получу список недавно измененных ключей, я хочу иметь возможность перебирать и загружать их по заранее определенному локальному пути.
Есть мысли?
Спасибо