Могу ли я программно переместить объекты S3 в класс хранения Glacier?

У меня есть тысячи больших (5 — 500 МБ, большинство ~ 100 МБ) файлов в корзине S3, никакой организации вообще — никаких «каталогов». Все эти файлы имеют различное время истечения (некоторые истекают через 60 дней, другие после 90 и т. Д.), После чего я хотел бы переместить их в класс хранения Glacier.

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

Я пытался — используя PHP SDK — сделать copyObject с аргументом «StorageClass», установленным в «GLACIER», но это, как и ожидалось, дало исключение. Я предполагаю, что документация обновлена, и там действительно нет такой ценности 🙂

Я действительно надеюсь, что что-то упустил, потому что мне не хотелось бы загружать эти файлы, а затем загружать их в Glacier «вручную». Мне также не хватало бы простых функций восстановления с консоли S3.

1

Решение

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

Элементы конфигурации жизненного цикла Документация показывает каждое правило, состоящее из:

  • Метаданные правила которые включают идентификатор правила и статус, указывающий, включено ли правило или отключено. Если правило отключено, Amazon S3 не будет выполнять никаких действий, указанных в правиле.
  • Префикс идентификация объектов по префиксу ключа, к которому применяется правило.
  • Один или больше действия перехода / истечения срока с датой или периодом времени во время жизни объекта, когда вы хотите, чтобы Amazon S3 выполнил указанное действие.

Единственный способ определить который объекты переходят через префикс параметр. Следовательно, вам нужно будет указать отдельное правило для каждого объекта. (Префикс может включать полное имя объекта.)

Тем не менее, есть лимит 1000 правил в конфигурации жизненного цикла.

Да, вы можете перемещать объекты по одному в Amazon Glacier, но на самом деле это будет означать загрузку архивов в Glacier, а не «перемещение» их из S3. Также будьте осторожны — есть более высокая плата за запрос для Glacier, чем для S3 на самом деле это может стоить вам больше, чем экономия на хранении.

А пока рассмотрим использование Amazon S3 Standard — класс хранения с нечастым доступом, которые могут сэкономить около 50% затрат на хранение S3 для редко используемых данных.

2

Другие решения

Вы можете программно заархивировать определенный объект на S3 в Glacier, используя Правила жизненного цикла (с префиксом того объекта, который вы хотите заархивировать).

Eсть PUT жизненный цикл API. Этот API заменяет все конфигурация жизненного цикла, поэтому если у вас есть правила вне этого процесса, вам нужно будет добавлять их к каждому загружаемому жизненному циклу. Если вы хотите заархивировать определенные файлы, вы можете:

  • Для каждого файла создайте жизненный цикл с одним правилом, подождите, пока файл не будет передан, затем сделайте то же самое для следующего файла.
  • Создайте конфигурацию жизненного цикла с одним правилом на файл

Второе закончится быстрее (так как вам не нужно ждать между файлами), но требует, чтобы вы знали все файлы, которые вы хотите заархивировать заранее.

Существует ограничение в 1000 правил на конфигурацию жизненного цикла, поэтому, если у вас очень много файлов, которые вы хотите заархивировать, вам нужно будет разделить их на отдельные конфигурации жизненного цикла.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector