Просто переберите все объекты и посчитайте размер
sum([object.size for object in boto3.resource('s3').Bucket('mybucket').objects.all()])
EDIT:
Если вы хотите, чтобы это было быстрее, вам придется использовать другой подход, описанный выше метод делает HTTP-запрос для каждого объекта в вашей корзине, поэтому, очевидно, он масштабируется линейно с количеством файлов в корзине. К сожалению, это нельзя ускорить.
Однако вы можете использовать сторонние скрипты, такие как s4cmd
, что быстрее по сравнению с первым подходом.
s4cmd du s3://bucket-name
Или используйте -r
, если вы хотите включить размер подкаталогов
s4cmd du -r s3://bucket-name