Mc: `mc rm` с флагом --older-than также удаляет сегменты

Созданный на 29 дек. 2018  ·  15Комментарии  ·  Источник: minio/mc

Ожидаемое поведение

Должен быть способ удалить все объекты в сегменте с помощью флага --older-than , но не сам контейнер .
Я ожидал, что это произойдет при запуске mc rm -r --older-than 30 --force minio/bucket/ .

Фактическое поведение

Ведро также было удалено. (Для справки, это было старше 30 дней.)

Шаги по воспроизведению поведения

  1. Иметь ведро старше x дн.
  2. Запустите mc rm -r --older-than x --force minio/bucket/ .

Альтернативно:

mc mb minio/bucket/
mc rm -r --older-than 0 --force minio/bucket/

версия MC

$ mc version
Version: 2018-12-27T00:37:49Z
Release-tag: RELEASE.2018-12-27T00-37-49Z
Commit-id: 4e7eeb0725abcd36b54a37636ff89f29c3238fd8

Системная информация

Fedora 29

community medium

Все 15 Комментарий

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

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

silvernode picture silvernode  ·  8Комментарии

accaldwell picture accaldwell  ·  5Комментарии

i0x71 picture i0x71  ·  5Комментарии

tru2dagame picture tru2dagame  ·  6Комментарии

ramosisw picture ramosisw  ·  4Комментарии