AFAIK, нет прямого способа фильтрации по дате с использованием boto3, единственный доступный фильтр : Bucket
, Delimiter
, EncodingType
, Marker
, MaxKeys
, Prefix
и RequestPayer
.
Так что вам нужно циклически переключать ключи / объекты, чтобы сравнить дату начала / окончания с значением объекта last_modified
datetime, чтобы получить все объекты в определенном сегменте за неделю назад(включено) и сегодня (исключено) я сделаю что-то вроде
from datetime import datetime, timedelta
import boto3
from pytz import UTC as utc
# NOTE: We need timezone aware objects, because the s3 object one will be.
today = utc.localize(datetime.utcnow())
since = today - timedelta(weeks=1)
# WARNINGS:
# - You may need to provide proper credentials when calling boto3.resource...
# - Error management will need to be added, in case the bucket doesn't exist.
keys = [
o for o in boto3.resource('s3').Bucket(name='some_bucket').objects.all()
if o.last_modified < today and o.last_modified >= since
]