- Nueva estructura de carpetas según Skynet v7 - Añadidos schemas SQL completos - Documentación de entidades, componentes e integraciones - Modelo de seguridad actualizado - Infraestructura y operaciones reorganizadas
2.2 KiB
2.2 KiB
Almacenamiento
Versión: 1.0
Estado: Definición
Visión General
El sistema utiliza Cloudflare R2 como almacenamiento de objetos. Cada instancia tiene su propio bucket independiente.
Buckets R2
| Bucket | Uso | Acceso |
|---|---|---|
| architect | Coordinador central | Privado |
| deck | Servidor personal | Privado |
| corp | Servidor empresarial | Privado |
| hst | Tags semánticos (imágenes) | Público |
| locker | Almacenamiento general | Privado |
Protocolo locker://
Referencia interna para archivos almacenados en R2.
Formato
locker://{bucket}/{h_entrada}/{filename}
Ejemplos
locker://deck/a1b2c3d4.../documento.pdf
locker://corp/f5e6d7c8.../factura.png
locker://hst/abc123.../imagen.png
Estructura de Almacenamiento
Por contenedor (ingesta)
{bucket}/
└── {h_entrada}/
├── archivo1.pdf
├── archivo2.jpg
└── metadata.json
HST (tags)
hst/
└── {mrf}.png # mrf = SHA-256 del archivo de imagen
Configuración R2
Variables de Entorno
R2_ENDPOINT=https://{account_id}.r2.cloudflarestorage.com
R2_ACCESS_KEY=****
R2_SECRET_KEY=****
R2_BUCKET={bucket_name}
Cliente Python
import boto3
s3 = boto3.client(
's3',
endpoint_url=R2_ENDPOINT,
aws_access_key_id=R2_ACCESS_KEY,
aws_secret_access_key=R2_SECRET_KEY
)
# Subir archivo
s3.put_object(
Bucket=R2_BUCKET,
Key=f"{h_entrada}/{filename}",
Body=file_bytes
)
# Obtener archivo
response = s3.get_object(
Bucket=R2_BUCKET,
Key=f"{h_entrada}/{filename}"
)
content = response['Body'].read()
Política de Retención
| Tipo de datos | Retención | Backup |
|---|---|---|
| Archivos de ingesta | Permanente | Sí |
| Imágenes HST | Permanente | Sí |
| Temporales | 7 días | No |
Integridad
Cada archivo se identifica por su hash SHA-256:
import hashlib
def calcular_hash(contenido_bytes):
return hashlib.sha256(contenido_bytes).hexdigest()
La referencia locker:// incluye el hash del contenedor, permitiendo verificación de integridad.