Должен быть способ удалить все объекты в сегменте с помощью флага --older-than
, но не сам контейнер .
Я ожидал, что это произойдет при запуске mc rm -r --older-than 30 --force minio/bucket/
.
Ведро также было удалено. (Для справки, это было старше 30 дней.)
x
дн.mc rm -r --older-than x --force minio/bucket/
.Альтернативно:
mc mb minio/bucket/
mc rm -r --older-than 0 --force minio/bucket/
$ mc version
Version: 2018-12-27T00:37:49Z
Release-tag: RELEASE.2018-12-27T00-37-49Z
Commit-id: 4e7eeb0725abcd36b54a37636ff89f29c3238fd8
Fedora 29
Обходной путь: mc find minio/bucket --older 30d --exec "mc rm {}"
@nikwen, это пока ожидаемое поведение. вы хотите сохранить ведра?
@harshavardhana Спасибо за быстрый ответ!
Мой вариант использования: у меня есть корзина, в которой мне регулярно нужно удалять все объекты старше x
дней. Я не хочу удалять само ведро и другое его содержимое.
Улучшения, которые я бы предложил:
--ignore-buckets
к mc rm
только для удаления объектов.mc rm
, чтобы он говорил "объекты и корзины":
--older-than value remove objects older than N days (default: 0)
--newer-than value remove objects newer than N days (default: 0)
Я склонен думать, что мы не должны удалять корзины так быстро, поскольку пользователи могут по ошибке потерять множество конфигураций корзины (политика корзины, уведомление, жизненный цикл позже и т. Д.)
Также нам нужно обсудить, как должен вести себя mc, когда включено управление версиями. В настоящее время в этом случае невозможно удалить корзину с mc
. Итак, --remove-bucket может быть полезен в этом случае для решения обеих проблем, но это требует дальнейшего обсуждения.
Я склонен думать, что мы не должны удалять корзины так быстро, поскольку пользователи могут по ошибке потерять множество конфигураций корзины (политика корзины, уведомление, жизненный цикл позже и т. Д.)
@vadmeste Полностью согласен!
Также не стесняйтесь изменять заголовок или текст проблемы на все, что вам нужно. :подмигивание:
@nikwen Мы решили добавить новую команду
mc rb myaliaas/bucket
с необязательным флагом --force
. rb
удалит ведро. С флагом --force
он удалит его, даже если в ведре есть объекты.
@kannappanr Мне это нравится. Я предполагаю, что rm
больше не будет удалять сегменты. :краснеть:
Спасибо вам, ребята. Ты такой классный!
Привет,
Я пытаюсь очистить просроченные объекты с помощью следующей команды:
mc rm --recursive --force --older-than 1d /data/upload
Это также удаляет корзину upload
, но я хотел бы ее оставить. Я что-то делаю не так? У моих объектов нет определенного префикса, я просто хочу просканировать ведро на предмет просроченных объектов.
Версия - RELEASE.2020-04-04T05-28-55Z.
Спасибо,
Кулачок
mc rm --recursive --force --older-than 1d /data/upload
Это локальная папка, а не ведро @tuscland
Спасибо @harshavardhana !
Понятно, но ... почему поведение должно отличаться в зависимости от цели?
Да, один ведет себя для файловой системы, другой - для хранилища объектов, оба являются разными сущностями с разным значением.
То, что mc делает абстракцией взаимодействия между двумя диаметрально противоположными системами, не пытается обобщить поведение, поскольку проблемы различны для каждой рассматриваемой системы.
Однако поведение по-прежнему вводит в заблуждение, потому что, когда указана опция --fake
, список объектов, которые будут удалены, верен (это не означает, что он удалит корзину). Только когда вы действительно запускаете (а не подделку), mc удаляет бакет и даже пытается удалить корневую папку (но терпит неудачу из-за базовой блокировки fs).
Это не вводит в заблуждение, это то, что мы хотели сделать с mc @tuscland , вы можете не захотеть этого. Но так оно и есть по нашим требованиям. Как я уже сказал, абстракция - это не обобщение.
Теперь, что касается различий в том, что отображается во время --fake, можно исправить, не стесняйтесь открывать для этого новую проблему.