Срок действия объекта Amazon S3 - PullRequest
0 голосов
/ 04 мая 2018

Я много читал о том, как истечь (удалить) объект amazon S3, и пытался настроить правило жизненного цикла, чтобы сделать это, однако объекты не были удалены, интересно, что я сделал не так.

У меня есть объекты на S3, организованные так:

Amazon S3 > my-test-bucket > my-test-org > a.csv, 
                                           b.xml, 
                                           c.xsl...

Мне нужно удалить все эти файлы из my-test-bucket, если им 365 дней. там больше двух лет, поэтому с этим правилом эти файлы должны быть удалены.

в правиле жизненного цикла я указал добавление фильтра для ограничения области my-test-bucket, а в разделе «Срок действия» я выбрал «Текущая версия» и «Предыдущие версии»,

  • истекает текущая версия объекта через 365 дней с момента создания объекта
  • окончательно удалить предыдущие версии через 365 дней с момента превращения в предыдущую версию
  • правило применяется к префиксу 'my-test-bucket'

my-test-bucket не поддерживает управление версиями.

После всего этого я продолжал ждать и ждать, но ничего не произошло. эти старые файлы все еще там. мои вопросы:

  1. когда происходит автоматическое истечение срока действия? каждый день в полночь или как?
  2. есть ли кнопка, которую я могу нажать, чтобы сразу истечь объекты?
  3. в моем случае у меня есть файлы под my-test-org, а не прямо под my-test-bucket, будет ли это правило работать? я должен применить подстановочный знак в правиле, чтобы убедиться, что он проверяет все файлы во всей папке org?

спасибо

1 Ответ

0 голосов
/ 04 мая 2018

"правило применяется к префиксу 'my-test-bucket'"

Это ваша ошибка. Префикс относится к префиксу ключа объекта. Сюда не входит название группы.

Префикс, который вы хотите: my-test-org/. Конечный слеш важен, потому что без него ваше правило также будет соответствовать другим ключевым префиксам, таким как my-test-organization и my-test-organism, что может привести к неожиданным совпадениям.

Помните, что на самом деле в S3 нет папок. Ключи объекта - это строки, разделенные / для обозначения иерархии папок, но папки на самом деле не являются контейнерами. Файл "foo.txt", который появляется в папке "bar", на самом деле имеет объектный ключ "bar / foo.txt".

Соответствие префикса в псевдокоде

if(left(object_key, len(prefix)) == prefix) { # rule matches

При изменении правила использования этого префикса каждый объект с ключом, начинающимся с my-test-org/, будет удален, если ему более 365 дней. Это, конечно, включает в себя все подкаталоги.

Тесты правил начинаются около полуночи UTC, и через некоторое время после этого начинается фактическая очистка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...