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 incrementa silenciosamente tanto el coste como el impacto de carbono.
La verdad es: la mayoría de los objetos almacenados no deberían 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 reto 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: se trata 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 principales 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á construido 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 idea posterior, 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 de API como X-API-KEY.
URL base:
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 metadata (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 antes de tiempo (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 sin criterio: se trata de diseñar con 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 la misma cantidad de energía.
La gestión del ciclo de vida de los objetos refleja directamente la ética de Green Software: eliminar recursos de almacenamiento no utilizados y establecer políticas de retención por defecto — un pequeño acto 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 sin desperdicio — donde los datos viven solo el tiempo que deben, y no más.
La gestión del ciclo de vida de objetos se integra sin problemas en las canalizaciones 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 facilita aplicar políticas de ciclo de vida directamente en tus flujos de despliegue: asegurando que los artefactos temporales no se acumulen indefinidamente.
El almacenamiento debería ser dinámico, no estático.
Al integrar la consciencia 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.