У меня есть тысячи больших (5 — 500 МБ, большинство ~ 100 МБ) файлов в корзине S3, никакой организации вообще — никаких «каталогов». Все эти файлы имеют различное время истечения (некоторые истекают через 60 дней, другие после 90 и т. Д.), После чего я хотел бы переместить их в класс хранения Glacier.
Я рассмотрел функцию жизненного цикла, но не могу найти, как применить конкретное правило к одному файлу. Похоже, они работают только с использованием префиксов, и я бы не стал менять свое соглашение об именах.
Я пытался — используя PHP SDK — сделать copyObject с аргументом «StorageClass», установленным в «GLACIER», но это, как и ожидалось, дало исключение. Я предполагаю, что документация обновлена, и там действительно нет такой ценности 🙂
Я действительно надеюсь, что что-то упустил, потому что мне не хотелось бы загружать эти файлы, а затем загружать их в Glacier «вручную». Мне также не хватало бы простых функций восстановления с консоли S3.
Нет команды, чтобы указать Amazon S3 архивировать определенный объект в Amazon Glacier. Вместо, Правила жизненного цикла используются для идентификации объектов.
Элементы конфигурации жизненного цикла Документация показывает каждое правило, состоящее из:
Единственный способ определить который объекты переходят через префикс параметр. Следовательно, вам нужно будет указать отдельное правило для каждого объекта. (Префикс может включать полное имя объекта.)
Тем не менее, есть лимит 1000 правил в конфигурации жизненного цикла.
Да, вы можете перемещать объекты по одному в Amazon Glacier, но на самом деле это будет означать загрузку архивов в Glacier, а не «перемещение» их из S3. Также будьте осторожны — есть более высокая плата за запрос для Glacier, чем для S3 на самом деле это может стоить вам больше, чем экономия на хранении.
А пока рассмотрим использование Amazon S3 Standard — класс хранения с нечастым доступом, которые могут сэкономить около 50% затрат на хранение S3 для редко используемых данных.
Вы можете программно заархивировать определенный объект на S3 в Glacier, используя Правила жизненного цикла (с префиксом того объекта, который вы хотите заархивировать).
Eсть PUT жизненный цикл API. Этот API заменяет все конфигурация жизненного цикла, поэтому если у вас есть правила вне этого процесса, вам нужно будет добавлять их к каждому загружаемому жизненному циклу. Если вы хотите заархивировать определенные файлы, вы можете:
Второе закончится быстрее (так как вам не нужно ждать между файлами), но требует, чтобы вы знали все файлы, которые вы хотите заархивировать заранее.
Существует ограничение в 1000 правил на конфигурацию жизненного цикла, поэтому, если у вас очень много файлов, которые вы хотите заархивировать, вам нужно будет разделить их на отдельные конфигурации жизненного цикла.