Вы не можете изменять любой объект с помощью S3.Если вы хотите изменить существующий объект, вам нужно удалить существующий и перезаписать новый объект.Сюда входит переименование и его метаданные.
S3 Метаданные:
https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html
Вы можете указать или зациклить несколько дат для поиска соответствующих дат.
DATE=$(date +%Y-%m-%d)
aws s3 ls s3://bucket/2018/ --recursive | grep $DATE
Что касается масштабируемости, если у вас есть больше объектов, у вас возникнет проблема синхронизации при сборе списка объектов с их измененной датой.
S3 Inventory:
Если для сбора списка объектов допустима 24-часовая задержка, вы можете использовать инвентаризацию S3 для составления списка объектов с датой их создания.
https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html
Инвентарь будет доставлен в ведро s3, и вы можете запустить лямбду, прочитать содержимое и переместить объект в нужное место.
S3 Копия:
Вы можете использовать cli / lambda для копирования между сегментами или внутри одного сегмента.
aws s3 mv s3://bucket1/folder1 s3://bucket1/folder2 --recursive
aws s3 mv s3://bucket1/folder1 s3://bucket1/folder1 --recursive
EDIT1:
Фактический скрипт для простого цикла для копирования из источникадо места назначения
#!/bin/sh
aws s3api list-objects --bucket "bucket-name" --prefix "prefix/foldername" --query "Contents[?LastModified>='2018-10-02'].{Key: Key}" --profile production | tr '\n' ' ' | jq -c '.[].Key' | while read i; do
aws s3 mv s3://sourbucket/$i s3://destinationbucket/
done
Надеюсь, это поможет.