9 ноября 2013 г. Как удалить все файлы с Amazon S3 bucket

К сожалению, в 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 должен быть пустым. Надеюсь это поможет сэкономить вам время

Разработка