terra-rolla
v1.2.3
Published
Object Storage Engine for Terra Ecosystem over GitHub Releases
Maintainers
Readme
📦 TERRA ROLLA SDK
Motor de Almacenamiento de Objetos Inmutable e Ilimitado a Coste $0
📌 Visión General
terra-rolla es la librería oficial en TypeScript / JavaScript del motor de almacenamiento de objetos Rolla para el ecosistema Terra. Utiliza la CDN global de GitHub Releases & Assets alojada en la nube de GitHub sobre un repositorio privado (.rolla-storage) para ofrecer espacio de almacenamiento ilimitado a coste $0 sin saturar ramas ni repositorios Git.
🚀 Instalación Rápida
🌐 Instalación Global de la CLI (Terminal):
npm install -g terra-rolla📦 Instalación en Proyectos (SDK):
npm install terra-rolla🌟 Características
- ♾️ Coste $0 y Almacenamiento Ilimitado: Aprovecha la CDN de Releases de GitHub.
- 📦 Rolla-Balls (Buckets): Contenedores mapeados a Releases de Git.
- 🔄 Object Versioning (v1.1.0): Historial inmutable de versiones de archivos.
- ⚡ Sincronización Instantánea: Consulta de tags vía Git Refs.
- 🧩 Automatic Chunking (>2 GB): División y ensamblado transparente para archivos gigantescos.
- 💻 CLI & Servidor Local Incluidos:
rolla consolepara lanzar la interfaz web local.
🚀 Uso del SDK
import { Rolla } from 'terra-rolla';
const rolla = new Rolla({
githubToken: process.env.GITHUB_TOKEN
});
// 1. Crear un contenedor (Rolla-Ball)
await rolla.createBall('imagenes-prod');
// 2. Subir un archivo
await rolla.putObject('imagenes-prod', 'fotografia.png', bufferData, {
contentType: 'image/png'
});
// 3. Listar archivos (devuelve la versión más reciente por defecto)
const objects = await rolla.listObjects('imagenes-prod');
// 4. Descargar la última versión del archivo
const buffer = await rolla.getObject('imagenes-prod', 'fotografia.png');
// 5. Historial de Versiones (Object Versioning)
await rolla.putObject('imagenes-prod', 'fotografia.png', nuevoBufferData);
// Listar versiones de un objeto
const versiones = await rolla.listObjectVersions('imagenes-prod', 'fotografia.png');
// Descargar versión específica
const bufferV1 = await rolla.getObject('imagenes-prod', 'fotografia.png', { versionId: versiones[0].versionId });📜 Licencia
MIT
