En el desarrollo en la nube, a menudo tratamos el almacenamiento como infinito. Cada registro, copia de seguridad o conjunto de datos que creamos se conserva indefinidamente, no porque siempre sea útil, sino porque eliminarlo parece arriesgado. Sin embargo, esta mentalidad aumenta silenciosamente tanto el costo como el impacto de carbono.
La verdad es: la mayoría de los objetos almacenados no debería vivir para siempre. Desde artefactos de compilación transitorios hasta exportaciones temporales y conjuntos de datos analíticos de corta duración, gran parte de los datos que producimos tiene una vida útil natural. El desafío está en alinear ese ciclo de vida con nuestros sistemas.
En DownToZero.Cloud, diseñamos DTZ ObjectStore alrededor de este principio. No se trata solo de almacenar datos de forma eficiente, sino de almacenarlos responsablemente.
Cada objeto en la nube consume más que espacio en disco. Usa:
Esta actividad continua persiste incluso para datos que nunca se vuelven a acceder. En esencia, nuestro almacenamiento tiene una sombra de carbono — y los ciclos de vida de datos sin gestionar la hacen crecer con el tiempo.
Uno de los núcleos de los Patrones de Green Software es la Gestión del ciclo de vida de los datos — asegurar que los recursos digitales se alineen con su relevancia en el mundo real.
En la práctica, eso significa:
Cuando aplicas este patrón, los beneficios van más allá de la sostenibilidad:
El servicio DTZ ObjectStore está diseñado con la gestión del ciclo de vida en su núcleo. A diferencia de los sistemas de almacenamiento tradicionales donde los TTL son una ocurrencia tardía, DTZ integra esta capacidad en el flujo de trabajo de creación de objetos.
Adjunta un TTL cuando subes. Usa ya sea una duración relativa (X-DTZ-EXPIRE-IN) o una marca de tiempo absoluta (X-DTZ-EXPIRE-AT). Proporciona tu clave API como X-API-KEY.
Base URL:
https://objectstore.dtz.rocks/api/2022-11-28
Subir con un TTL de 24 horas (duración):
curl -X PUT \
"https://objectstore.dtz.rocks/api/2022-11-28/obj/logs/builds/2025-11-05.json" \
-H "X-API-KEY: $DTZ_API_KEY" \
-H "X-DTZ-EXPIRE-IN: P1D" \
--data-binary @build-output.json
Subir que expira en un momento fijo (RFC-3339):
curl -X PUT \
"https://objectstore.dtz.rocks/api/2022-11-28/obj/exports/report.csv" \
-H "X-API-KEY: $DTZ_API_KEY" \
-H "X-DTZ-EXPIRE-AT: 2025-12-01T00:00:00Z" \
--data-binary @report.csv
Descargar un objeto:
curl -s \
"https://objectstore.dtz.rocks/api/2022-11-28/obj/exports/report.csv" \
-H "X-API-KEY: $DTZ_API_KEY" -o report.csv
Comprobar metadatos (incluida la expiración calculada por el servidor):
curl -I \
"https://objectstore.dtz.rocks/api/2022-11-28/obj/exports/report.csv" \
-H "X-API-KEY: $DTZ_API_KEY"
# Look for headers like:
# X-DTZ-EXPIRATION: 2025-12-01T00:00:00Z
Listar objetos por prefijo:
curl -s \
"https://objectstore.dtz.rocks/api/2022-11-28/obj/?prefix=logs/builds/" \
-H "X-API-KEY: $DTZ_API_KEY" \
| jq .
# Response includes per-object fields like key, size, lastModified, and expiration.
Eliminar anticipadamente (si es necesario):
curl -X DELETE \
"https://objectstore.dtz.rocks/api/2022-11-28/obj/exports/report.csv" \
-H "X-API-KEY: $DTZ_API_KEY"
La eliminación de cada objeto se divide en dos fases. Cuando un objeto alcanza su tiempo de expiración, ya no es accesible a través de la API, pero permanece presente en el sistema de almacenamiento (y en ese punto no se factura). La eliminación real se programa en lotes durante ventanas de baja intensidad de carbono para minimizar la huella de los trabajos en segundo plano — convirtiendo la aplicación de ciclos de vida en una palanca de sostenibilidad, no solo en una tarea operativa.
El ciclo de vida no se trata de eliminar de forma imprudente: se trata de diseñar con un propósito. Patrones que funcionan bien:
Define las reglas una vez y deja que el sistema se optimice continuamente: consumiendo menos, costando menos y haciendo más con el mismo paquete energético.
La gestión del ciclo de vida de los objetos refleja directamente la ética de Green Software: eliminar recursos de almacenamiento no usados y establecer políticas de retención por defecto — un acto pequeño e intencional de administración que escala.
En DownToZero.Cloud, aquí es donde la buena ingeniería se encuentra con la buena ciudadanía. Nuestra misión es empoderar a los desarrolladores para diseñar para el desperdicio cero: donde los datos viven solo mientras los necesiten, y no más.
La gestión del ciclo de vida de objetos se integra sin problemas en pipelines de CI/CD. DTZ proporciona GitHub Actions dedicadas para subir y descargar objetos con soporte de expiración incorporado:
Ejemplo: Subir un artefacto de compilación con expiración a 30 días
- name: Upload build artifact
uses: DownToZero-Cloud/objectstore-upload@main
with:
api_key: ${{ secrets.DTZ_API_KEY }}
name: build.zip
expiration: P30D
Esto hace que sea sencillo aplicar políticas de ciclo de vida directamente en tus flujos de despliegue — asegurando que los artefactos temporales no se acumulen indefinidamente.
El almacenamiento debe ser dinámico, no estático.
Al incorporar la conciencia del ciclo de vida en tu arquitectura, reduces el desperdicio en la nube y adoptas un patrón de diseño sostenible que beneficia al planeta, a tu plataforma y a tus usuarios por igual.
DTZ ObjectStore convierte este principio en práctica — dando a cada objeto una historia, un propósito y, lo más importante, un final.