Skip to main content
Blob Storage habla la API de S3 en https://s3-blob.squarecloud.app. Cualquier herramienta que permita definir un endpoint personalizado funciona: aws-cli, boto3, el SDK de AWS para JavaScript, rclone, Cyberduck y la mayoría de las herramientas de copia de seguridad.

Credenciales

Las herramientas S3 firman las solicitudes con un par de claves de acceso. Obtenlo en S3 Credentials:
El par se deriva de tu API key. No necesita gestión aparte: revocar o regenerar la key hace lo mismo con el par, y el par recibe los mismos scopes. Una key con solo blob:read da un par de solo lectura. El par no cambia mientras la API key no cambie, así que obtenlo una vez y guárdalo en tu gestor de secretos o en una variable de entorno. No llames a la ruta en cada arranque: acepta 10 solicitudes por hora.

Buckets

Tu cuenta ve tres buckets fijos. No puedes crear ni eliminar buckets. Una key en el bucket public o private es la ruta del objeto sin tu id de usuario: images/logo.png en el bucket public es el objeto pub/<user_id>/images/logo.png en la API REST. Los archivos escritos por S3 aparecen en la API REST y en el dashboard, y viceversa.

Configuración

boto3 necesita signature_version="s3v4" para las URL prefirmadas: sin eso, generate_presigned_url firma con el antiguo SigV2, que el gateway no acepta. Las URL prefirmadas duran hasta 7 días (604800 segundos).
Las respuestas del gateway nunca se guardan en caché en el edge. Una URL prefirmada deja de funcionar exactamente cuando expira, cuando se revoca la API key o cuando se elimina el objeto.

Operaciones compatibles

Las políticas de bucket, CORS, lifecycle, website, cifrado, object lock, versiones, logging, notificaciones, replicación, escrituras de ACL y de etiquetas, GET por partNumber y las subidas por formulario POST desde el navegador responden 501 NotImplemented. Usa la configuración de la cuenta para las reglas de ciclo de vida.

Keys

  • Las keys son rutas literales. Una key puede tener hasta unos 1000 bytes: el límite de 1024 bytes también cuenta el prefijo de la cuenta. Una key más larga responde KeyTooLongError, y su mensaje indica el número exacto de bytes que tienes. Los segmentos no pueden estar vacíos ni ser . o ...
  • Una key de 0 bytes que termina en / es un marcador de carpeta, igual que la consola de AWS crea carpetas.
  • El Content-Type servido se deriva de la extensión, como en la API REST. Los ejecutables se rechazan con InvalidArgument y .html, .svg y .xml se sirven como descargas.

Metadatos, caché y expiración

  • Las cabeceras x-amz-meta-* se conservan en Pro y Enterprise (hasta 5 claves y 512 bytes; si no, MetadataTooLarge). En otros planes se descartan.
  • Cache-Control y Content-Disposition se conservan. Un Cache-Control sin caché (no-cache, no-store o max-age=0) fuera de Enterprise se rechaza con AccessDenied.
  • Las reglas por prefijo se aplican a los objetos escritos por S3, incluida la eliminación automática. max_size y extensions de una regla solo se aplican a las subidas REST.

Límites

Por encima de un límite, el gateway responde SlowDown (HTTP 503), y los SDK de AWS esperan y reintentan por su cuenta. Las solicitudes S3 no cuentan para el límite de solicitudes de API de tu plan. Comprueba el par de keys antes de reintentar en bucle: una IP que envía demasiadas credenciales inválidas queda bloqueada durante unos minutos.

Tamaño de parte

Las herramientas multipart dividen los archivos grandes por su cuenta; mantén cada parte en 80 MB o menos. Los valores por defecto de AWS CLI (8 MB) y rclone (5 MB) ya encajan.
Escribir requiere un plan de pago. Sin él, y en el bucket de solo lectura legacy, las escrituras responden AccessDenied. La cuota de almacenamiento se aplica igual que en la API REST.

Errores

El gateway responde con errores XML estándar de S3, así que los SDK los gestionan de forma nativa: