Поиск по сайту:

Как установить политику истечения срока действия для сегментов DigitalOcean Spaces


Веб-интерфейс DigitalOcean Spaces не позволяет устанавливать политики жизненного цикла корзины. Вот как применить настройки истечения срока действия, которые автоматически удаляют файлы по истечении заданного периода времени. Это делает Spaces более подходящим местом для чередующихся резервных копий и файлов журналов.

Хотя этой функции нет в пользовательском интерфейсе DigitalOcean, она поддерживается серверной частью Spaces. Spaces совместим с API-интерфейсами Amazon S3, поэтому клиенты командной строки могут устанавливать политики жизненного цикла на основе S3. Шаги, описанные ниже, также должны работать с другими поставщиками хранилищ объектов, которые реализуют S3 API.

Начиная

Вам понадобится установленный AWS CLI, чтобы следовать этому руководству. После его установки первая задача — предоставить учетные данные, чтобы CLI мог получить доступ к вашей учетной записи DigitalOcean.

Перейдите в панель управления DigitalOcean в своем браузере. Нажмите ссылку «API» в нижней части синей боковой панели слева от экрана. Затем нажмите кнопку «Создать новый ключ» справа от заголовка «Ключи доступа к пробелам».

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

Вернитесь к своему терминалу и запустите aws configure. Вас попросят ввести ключ доступа и секрет. Следуйте интерактивным подсказкам, чтобы указать значения, созданные вами в веб-интерфейсе DigitalOcean.

К сожалению, это еще не конец настройки CLI. Существенным ограничением официального клиента S3 является его невозможность сохранять пользовательские URL-адреса конечных точек вместе с вашими учетными данными. Это означает, что вы должны явно указывать URL-адрес DigitalOcean API для каждой команды, которую вы вводите:

aws s3 ls --endpoint=https://nyc3.digitaloceanspaces.com --bucket my-bucket

Приведенная выше команда отобразит объекты в корзине my-bucket вашей учетной записи Spaces. Если вы опустите флаг --endpoint, интерфейс командной строки S3 будет считать, что вы пытаетесь подключиться к учетной записи AWS. URL-адрес конечной точки должен соответствовать региону центра обработки данных DigitalOcean, в котором вы создали свое пространство — замените субдомен nyc3 на регион, который вы используете.

Создание вашей политики

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

{
    "Rules": [
        {
            "ID": "Prune old files",
            "Status": "Enabled",
            "Prefix": "",
            "Expiration": {
                "Days": 30
            }
        }
    ]
}

JSON — это декларативное представление применяемой политики. Внутри файла указываются атрибуты политики и ее текущее состояние.

В этом примере файлы будут удалены через 30 дней после их загрузки. Установка для Status значения Enabled активирует политику, а пустой Prefix применяет ее к каждому элементу в корзине. Вы можете использовать поле Prefix для выборочного удаления только определенных объектов, например, в подкаталоге temp/.

Применение политики

Затем вам нужно использовать интерфейс командной строки AWS, чтобы применить вашу политику к вашей корзине:

aws s3api put-bucket-lifecycle-configuration 
    --bucket my-bucket
    --endpoint https://nyc3.digitaloceanspaces.com
    --lifecycle-configuration file://my-policy.json

Замените my-bucket именем сегмента, с которым вы хотите использовать правила истечения срока действия.

CLI прочитает JSON-файл вашей политики и прикрепит его к корзине. Пока Status имеет значение Enabled, правила жизненного цикла применяются немедленно. Вы начнете видеть, как недавно загруженные объекты покидают вашу корзину, когда они преодолеют порог истечения срока действия.

Вы можете проверить, была ли применена ваша политика, прочитав ее из CLI:

aws s3api get-bucket-lifecycle-configuration 
    --bucket my-bucket
    --endpoint https://nyc3.digitaloceanspaces.com

Это должно показать вам JSON, который вы отправили.

Использование нескольких правил

Вы можете включить несколько элементов в массив Rules JSON. Это позволяет применять уникальные политики истечения срока действия к разным группам объектов, используя поле Prefix:

{
    "Rules": [
        {
            "ID": "Prune Invoices",
            "Status": "invoice",
            "Prefix": "I",
            "Expiration": {
                "Days": 90
            }
        },
        {
            "ID": "Prune Quotations",
            "Status": "Enabled",
            "Prefix": "Q",
            "Expiration": {
                "Days": 30
            }
        }
    ]
}

В соответствии с этой политикой предложения будут удаляться через 30 дней, а счета-фактуры будут действовать в течение 90 дней. Каждая корзина поддерживает до 100 отдельных правил жизненного цикла.

Прерывание неудачных загрузок

Еще одна роль политик жизненного цикла — очистка после неудачных многокомпонентных загрузок. Когда вы добавляете большие файлы через API-интерфейсы S3, они разбиваются на потоковые разделы, чтобы повысить производительность и устойчивость к сбоям в сети.

Вы можете получить частичные фрагменты, находящиеся в вашем ведре, если часть загрузки не будет завершена. Добавьте поле AbortIncompleteMultipartUpload в политику жизненного цикла, чтобы удалить эти избыточные фрагменты.

{
    "Rules": [
        {
            "ID": "AbortIncompleteMultipartUpload",
            "Prefix": "",
            "Status": "Enabled",
            "AbortIncompleteMultipartUpload": {
                "DaysAfterInitiation": 1
            }
        }
    ]
}

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

Краткое содержание

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

Хотя Spaces реализует политики истечения срока действия так же, как S3, другие формы политики жизненного цикла недоступны на платформе DigitalOcean. Еще одним ключевым компонентом набора функций S3 является возможность переноса объектов между классами хранения, например, автоматический переход в архивное хранилище через 30 дней. Выставление счетов за Spaces намного проще, поскольку доступен только один план, поэтому эти политики не повлияют на корзины DigitalOcean.




Все права защищены. © Linux-Console.net • 2019-2024