Удалить пустую папку в S3 bucket через CLI - PullRequest
0 голосов
/ 21 февраля 2019

У меня около 8K папок в корзине S3.Некоторые из них «пустые» (нет объектов с префиксом имени), а некоторые «не пустые».

Как программно обнаружить такую ​​«пустую» папку в корзине и удалить ее.

Да, я знаю, что в ведре нет понятия папки - она ​​просто называет.

1 Ответ

0 голосов
/ 21 февраля 2019

Пустая папка в контексте S3 - это объект S3 нулевого размера, ключ которого заканчивается разделителем вашей папки, обычно /, например images/cats/.

Если приложения, использующие этот S3ведро не нуждается в этих объектах папок, но вместо этого может вывести наличие структуры папок из наличия файловых объектов, например, вывести папку images/dogs/, когда они увидят файл images/dogs/terrier.png, тогда одно решение для удаления всех пустых папокпросто перечислить все объекты, оканчивающиеся на /, а затем удалить все объекты нулевого размера.Это приведет к удалению всех объектов папок.

Если приложениям нужны эти объекты папок, чтобы они оставались для непустых папок, вы бы сделали что-то другое.Например, перечислите все объекты S3 в корзине, извлеките те, которые представляют папки (нулевого размера, оканчивающиеся на /), а затем посмотрите, присутствует ли тот же префикс в любом другом объекте, не являющемся папкой.

Кроме того, если вы обнаружите, что перечисление содержимого всего сегмента становится проблематичным (например, если у вас есть миллионы объектов), то вы можете рассмотреть возможность использования отчета об инвентаризации S3 для управления вашим процессом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...