Вы не можете напрямую переименовывать объекты S3.
Таким образом, один из способов добиться этого - скопировать объекты с желаемым именем и затем удалить исходные объекты.
Кроме того, S3-контейнерыне имеют структуры каталогов, «структура каталогов» - это просто префиксы в ключах объектов.
У вас есть два варианта: либо вызвать aws cli из python, используя подпроцессы, либо использовать библиотеку boto3, чтобы скопировать все файлы из одного"каталог" к другому.
Решение с использованием подпроцесса:
import subprocess
subprocess.check_call("aws s3 sync s3://bucket/root/date=2018-01-01/ s3://bucket/root1/20180101/".split())
команда синхронизации будет копировать рекурсивно.Тогда вы можете использовать aws s3 rm --recursive "somepath"
.Вызовите его снова, используя подпроцесс.