Назад | Перейти на главную страницу

Удаление корзины Amazon AWS S3 с тысячами файлов / ключей

Есть ли простой способ удалить корзину Amazon S3, в которой хранятся десятки тысяч объектов? Я пробовал s3cmd с --recursive и --force, но он раздувает память и работает уже несколько дней без особого эффекта.

Новый ответ на удаление корзины Amazon S3, в которой хранятся тысячи или миллионы элементов, - это использование нового Правила истечения срока действия объекта.

Это можно сделать даже из консоли AWS. Просто перейдите к свойствам корзины, которую вы хотите удалить, откройте вкладку LifeCycle и настройте новое правило истечения срока действия без префикса и 1 день до истечения срока. Подождите один день, и объекты будут удалены. Если у вас есть миллионы (как у меня в моем случае), у вас может пройти несколько дней, прежде чем все объекты фактически исчезнут, однако вы будете рады отметить, что вы больше не платите за эти сохраненные предметы по истечении 24 часового периода.

Примечание. Единственным ограничением этого подхода является то, что вы не можете установить правила жизненного цикла, если у вас включено управление версиями.

Amazon недавно добавила новую функцию «Удаление нескольких объектов», которая позволяет удалять до 1000 объектов за один раз с помощью одного запроса API. Это должно позволить упростить процесс удаления большого количества файлов из корзины.

Документация по новой функции доступна здесь: http://docs.amazonwebservices.com/AmazonS3/latest/API/index.html?multiobjectdeleteapi.html

На данный момент вам придется вручную использовать API для запроса, но я ожидаю, что такие инструменты, как s3cmd, в конечном итоге будут обновлены для прямой поддержки этой функции.

синхронизировать пустой каталог с корзиной с помощью --delete флаг.

mkdir tmp-empty-dir
aws s3 sync --delete tmp-empty-dir/ s3://my-bucket

тогда корзина будет пустой и ее можно будет удалить.

я использую этот Java-апплет сделать это. Вы можете легко выбрать все свои файлы и удалить их.