# 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 ```bash R2_ENDPOINT=https://{account_id}.r2.cloudflarestorage.com R2_ACCESS_KEY=**** R2_SECRET_KEY=**** R2_BUCKET={bucket_name} ``` ### Cliente Python ```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: ```python 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.