Как удалить все файлы с Amazon S3 bucket
9 ноября 2013 г.
•
2 минуты чтения
К сожалению, в Amazon AWS console нет способа удалить сразу все файлы из bucket-а. Но как это сделать? У меня получилось сделать это при помощи s3cmd утилиты и небольшого скрипта на bash
Прежде всего нужно установить s3cmd утилиту, если она у вас не установлена. В Ubuntu это можно сделать следующим образом:
sudo apt-get install s3cmd
s3cmd –configure
После этого вы сможите воспользоватся "однострочным скриптом" на bash:
FILES=(`s3cmd ls s3://mybucket | grep -v DIR | awk '{print $4}' | tr '\n' ' '`) && for FILENAME in ${FILES[*]}; do s3cmd del $FILENAME; done
но это удалит только файлы, но не директории. Для того что бы удалить все директории, нужно выполнить следующий скрипт:
DIRS=(`s3cmd ls s3://mybucket | grep DIR | awk '{print $2}' | tr '\n' ' '`) && for DIRNAME in ${DIRS[*]}; do s3cmd del --recursive $DIRNAME; done
Это всё. После выполнения этих команд bucket должен быть пустым. Надеюсь это поможет сэкономить вам время
Последнее обновление 9 мая 2021 г.
Перевод этой статьи:
English