Cómo establecer una política de vencimiento en los buckets de DigitalOcean Spaces

La interfaz web de DigitalOcean Spaces no proporciona una forma de establecer políticas de ciclo de vida del depósito. A continuación, se explica cómo aplicar la configuración de caducidad que elimina archivos automáticamente después de un período de tiempo establecido. Esto hace que Spaces sea una ubicación más adecuada para realizar copias de seguridad y archivos de registro rotados.

Aunque esta función no está en la interfaz de usuario de DigitalOcean, es compatible con el backend de Spaces. Spaces es compatible con las API de Amazon S3, por lo que los clientes de la línea de comandos pueden establecer políticas de ciclo de vida basadas en S3. Los pasos que se describen a continuación también deberían funcionar con otros proveedores de almacenamiento de objetos que implementan las API de S3.

Empezar

Necesitará tener la AWS CLI instalada para seguir este tutorial. Una vez instalado, la primera tarea es proporcionar credenciales para que la CLI pueda acceder a su cuenta de DigitalOcean.

Vaya al panel de control de DigitalOcean en su navegador. Haga clic en el enlace "API" en la parte inferior de la barra lateral azul a la izquierda de la pantalla. Luego, haz clic en el botón "Generar clave nueva" a la derecha del encabezado "Claves de acceso a espacios".

Ponle un nombre a tu nueva clave, luego haz clic en la marca de verificación para completar el proceso. Se mostrará su clave y su correspondiente secreto. Tome nota de estos valores, ya que es imposible recuperar la parte secreta después de salir de la pantalla.

Vuelve a tu terminal y corre aws configure. Se le pedirá su clave de acceso y secreto. Siga las instrucciones interactivas para proporcionar los valores que generó en la interfaz web de DigitalOcean.

Desafortunadamente, este todavía no es el final de la configuración de CLI. Una limitación significativa del cliente oficial de S3 es su incapacidad para guardar URL de punto final personalizadas junto con sus credenciales. Esto significa que debe especificar explícitamente la URL de la API de DigitalOcean con cada comando que emita:

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

El comando de arriba mostrará los objetos en el my-bucket cubo de tu cuenta de Spaces. Si omitió el --endpoint , la CLI de S3 supondría que está intentando conectarse a una cuenta de AWS. La URL del punto final debe coincidir con la región del centro de datos de DigitalOcean donde creó su espacio; reemplace el nyc3 subdominio para la región que está utilizando.

Crea tu propia póliza

Las políticas del ciclo de vida del depósito se definen como archivos JSON que describen las reglas que desea aplicar. Cree un nuevo archivo con su editor de texto favorito y agregue el siguiente contenido:

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

JSON es un declarativo representación de la política a aplicar. Los atributos de la política y su estado actual se especifican dentro del archivo.

Este ejemplo eliminará archivos 30 días después de la carga. Colocación Status para Enabled activar la política, mientras que un espacio en blanco Prefix lo aplica a todos los objetos del cubo. Puedes usar el Prefix campo para eliminar selectivamente solo algunos objetos, como los del temp/ subdirectorios.

Aplicación de la política

A continuación, debe utilizar la AWS CLI para aplicar la política al depósito:

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

Sustituir my-bucket con el nombre del depósito con el que desea utilizar las reglas de caducidad.

La CLI leerá su archivo JSON de política y lo adjuntará al depósito. Hasta el Status Y Enabled, las reglas del ciclo de vida se aplicarán inmediatamente. Comenzará a ver que los artículos recién cargados abandonan su depósito cuando superan el umbral de vencimiento.

Puede verificar que su política se haya aplicado leyéndola desde la CLI:

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

Esto debería mostrarle el JSON que envió.

Usando múltiples reglas

Puede incluir varios elementos en su Rules Matriz JSON. Esto le permite aplicar criterios de caducidad únicos a diferentes grupos de objetos, utilizando el Prefix campo:

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

Esta regla eliminaría las cotizaciones después de 30 días, dejando las facturas vigentes durante 90 días. Cada depósito admite hasta 100 reglas de ciclo de vida individuales.

Anulando cargas fallidas

Otra función de las políticas de ciclo de vida es la limpieza después de cargas de varias partes fallidas. Cuando agrega archivos grandes a través de las API de S3, se dividen en secciones de transmisión para mejorar el rendimiento y la resistencia a las interrupciones de la red.

Puede terminar con piezas parciales en su balde si no se completa una parte de carga. Añade el AbortIncompleteMultipartUpload campo a una política de ciclo de vida para eliminar estos bloques redundantes.

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

Esta política limpia los bloques de carga incompletos un día después del inicio, liberando potencialmente espacio de almacenamiento. Cuando se borren los bloques, no podrá reanudar la carga original nuevamente; los clientes deberán reiniciarla desde el principio.

Resumen

DigitalOcean Spaces admite políticas de ciclo de vida S3, pero debe aplicarlas mediante la API. Una vez configuradas, sus cargas se eliminarán automáticamente después de un período de tiempo establecido, lo que le dará la confianza de que los archivos antiguos no están desperdiciando espacio de almacenamiento y aumentando su factura.

Aunque Spaces implementa políticas de vencimiento de la misma manera que S3, otras formas de políticas de ciclo de vida no están disponibles en la plataforma DigitalOcean. Otro componente clave del conjunto de funciones de S3 es la capacidad de mover objetos entre clases de almacenamiento, como una migración automática al almacenamiento de archivos después de 30 días. Facturar espacios es mucho más fácil con un solo plan disponible, por lo que estas políticas no afectarán los depósitos de DigitalOcean.

¿Qué te ha parecido?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir