Перейти к основному содержимому

Жизненный цикл

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

Принципы работы

Конфигурация жизненного цикла — это набор инструкций в формате JSON, которые определяют:

  • как долго объекты должны храниться;
  • какие действия выполняются с объектами по истечении заданного времени.

Правила применяются на уровне бакета и могут охватывать:

  • все объекты в бакете без исключения;
  • объекты, отобранные по фильтрам, таким как префиксы (например, logs/), теги или другие метаданные.

Доступные действия

Правила жизненного цикла поддерживают следующие операции:

Автоматическое удаление объектов: Задайте срок хранения (например, 30 дней), после которого объекты будут удалены из бакета;
Очистка устаревших версий: Если в бакете включено версионирование, можно указать период, после которого старые версии объектов будут автоматически удаляться, освобождая место;
Прерывание незавершенных загрузок: Для составных (multipart) загрузок можно установить время, по истечении которого незавершенные процессы будут автоматически остановлены, чтобы избежать накопления временных данных.

Особенности и ограничения

Применение только на уровне бакета: Правила жизненного цикла нельзя настроить для отдельных объектов — они действуют на весь бакет или его часть, определенную фильтрами;
Универсальность действия: Правила затрагивают как существующие, так и вновь загруженные объекты. Например, если вы установите правило удаления объектов старше 60 дней, все объекты, соответствующие этому критерию, независимо от даты их загрузки, будут удалены;
Задержка активации: Новые или измененные правила вступают в силу с небольшой задержкой (обычно несколько часов). Учитывайте это при автоматизации процессов;
Приоритет над политиками доступа: Правила жизненного цикла имеют более высокий приоритет, чем политики доступа бакета. Например, если политика бакета запрещает удаление объектов, но правило жизненного цикла предписывает удаление, объекты будут удалены;
Логирование изменений: Рекомендуется включить логирование операций в бакете, чтобы отслеживать действия, выполненные по правилам жизненного цикла, для последующего анализа или аудита.

Рекомендации

  • Тестируйте правила на небольшом наборе данных перед применением к большому бакету;
  • Используйте понятные идентификаторы (ID) для правил, чтобы облегчить их управление;
  • Регулярно проверяйте логи, чтобы убедиться, что правила работают корректно и не удаляют важные данные.

Параметры правил жизненного цикла объектного хранилища

Таблица ниже описывает ключевые параметры для настройки правил жизненного цикла в объектном хранилище. Эти параметры определяют условия и действия для автоматического управления объектами в бакете.

ПараметрТипОписаниеПример
IDСтрокаУникальный идентификатор правила, отличающий его от других в бакете."ID": "CleanupTempFiles"
StatusСтрокаСостояние правила: Enabled — активно; Disabled — неактивно."Status": "Enabled"
FilterОбъектУсловие применения правила:Prefix — фильтр по пути объекта; Tags — фильтр по тегам."Filter": {"Prefix": "temp/","Tags": [{"Key": "Project", "Value": "Test"}]}
ExpirationОбъектСрок удаления объекта:Days — через указанное число дней;Date — в указанную дату."Expiration": { "Days": 90 }
NoncurrentVersionExpirationОбъектСрок удаления старых версий: NoncurrentDays — дни до удаления; NewerNoncurrentVersions — число версий для сохранения."NoncurrentVersionExpiration": { "NoncurrentDays": 60, "NewerNoncurrentVersions": 2 }
AbortIncompleteMultipartUploadОбъектПрерывание незавершенных загрузок: DaysAfterInitiation — дни с начала загрузки."AbortIncompleteMultipartUpload": { "DaysAfterInitiation": 14 }

Примечания

ID: Используйте понятные имена, отражающие назначение правила, например, CleanupTempFiles для удаления временных файлов. Filter: Без фильтра правило затрагивает все объекты в бакете, что может быть нежелательно. Expiration: Полезно для автоматического удаления устаревших данных, таких как временные медиафайлы. NoncurrentVersionExpiration: Применяется только при включенном версионировании бакета. AbortIncompleteMultipartUpload: Очищает незавершенные загрузки, экономя место в хранилище.

Прерывание незавершенных составных загрузок

Составная загрузка позволяет загружать большие объекты частями. Если загрузка остается незавершенной, это может привести к проблемам:

  • загруженные части занимают место, увеличивая затраты;
  • усложняется управление данными в бакете;
  • при удалении бакета требуется ручная очистка.

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

Для управления жизненным циклом см. инструкцию Управление жизненным циклом объекта. Для ознакомления с примерами см. статью Примеры конфигураций правил жизненного цикла объекта.