Автоматическое удаление объектов старше n дней в Amazon S3 (как?) - PullRequest
7 голосов
/ 13 июля 2010

Я храню много изображений в Amazon S3, используя ruby ​​lib (http://amazon.rubyforge.org/)

Мне не нужны фотографии старше 1 недели, затем, чтобы освободить место в S3, я должен удалить ихфотографии.

Я знаю, что есть способ удаления объекта из определенного сегмента:

S3Object.delete 'photo-1.jpg', 'photos'

Есть ли способ автоматического удаления изображения старше недели?

Если его не существует, я должен написать для этого демона: - (

Спасибо


ОБНОВЛЕНИЕ: теперь это возможно, проверьте ответ Роберто.

Ответы [ 3 ]

43 голосов
/ 09 января 2012

Вы можете использовать Политика истечения срока действия объекта Amazon S3

Amazon S3 - Срок действия объекта |Блог AWS

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

Новая функция S3 Object Expiration позволяет вам определять правила для планирования удаления ваших объектов послепредварительно определенный период времени.Правила указаны в политике конфигурации жизненного цикла, которую вы применяете к корзине.Вы можете обновить эту политику через API S3 или из Консоли управления AWS.

Истечение срока действия объекта |Документация AWS S3

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

Ps: нажмите на ссылку для получения дополнительной информации.

1 голос
/ 13 июля 2010

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

0 голосов
/ 13 июля 2010

К сожалению, Amazon не предлагает API для автоматического удаления на основе определенного набора критериев.

Вам необходимо написать демон, который просматривает все фотографии и выбирает только те, которыесоответствуют вашим критериям, а затем удалите их один за другим.

...