3 puntos por GN⁺ 2024-04-20 | 1 comentarios | Compartir por WhatsApp

Lanzamiento general de la compatibilidad S3 y de Resumable Uploads en Supabase Storage

  • Supabase Storage ahora es un proveedor de almacenamiento compatible con S3. Esta era una de las funciones más solicitadas y actualmente está disponible en alfa pública.
  • Resumable Uploads también pasó de beta a disponibilidad general.
  • El motor de Supabase Storage es completamente de código abierto y es una de las pocas soluciones de almacenamiento que ofrece 3 protocolos interoperables para la gestión de archivos.
    • Standard uploads: fáciles para empezar
    • Resumable uploads: cargas reanudables para archivos grandes
    • S3 uploads: para compatibilidad con diversas herramientas

Compatibilidad con S3

  • Supabase siempre ha buscado adoptar estándares de la industria. Soportar estándares permite portar cargas de trabajo, y eso se ha convertido en un principio clave del producto.
  • La API de S3 es, sin duda, el estándar del almacenamiento, y estamos haciendo que desarrolladores de distintos niveles de experiencia puedan usarla.
  • El protocolo S3 es retrocompatible con las demás API. Si ya estás usando Storage a través de la API REST o TUS, desde hoy puedes usar un cliente S3 para interactuar con buckets y archivos: subir con TUS, servir con REST y administrar con el protocolo S3.
  • Este protocolo funciona en la nube, en desarrollo local y en self-hosting. Consulta en la documentación la compatibilidad de la API.

Autenticación de Supabase S3

  • Hay 2 opciones para autenticarse con Supabase S3:
    1. Credenciales estándar de access_key y secret_key. Se pueden generar en la página de configuración de almacenamiento. Este método de autenticación es ampliamente compatible con herramientas que soportan el protocolo S3. Proporciona acceso total a los recursos de Storage, por lo que está diseñado para usarse solo del lado del servidor.
      • En el futuro planean agregar credenciales de claves de acceso con alcance limitado que podrán dar acceso a buckets específicos.
    2. Credenciales con alcance de usuario usando RLS. Esto aprovecha Row Level Security, un concepto ya muy adoptado en todos los servicios de Supabase. Puedes interactuar con el protocolo S3 delimitando las operaciones de almacenamiento a un usuario o rol autenticado específico, respetando las políticas RLS existentes. Esto es posible usando el header de token de sesión que soporta el protocolo S3. En la documentación hay más detalles sobre cómo usar este mecanismo de token de sesión.

Integraciones compatibles con S3

  • Gracias al soporte del protocolo S3, ahora puedes conectar Supabase Storage con muchas herramientas y servicios de terceros. Solo necesitas proporcionar un par de credenciales que puedes revocar en cualquier momento.
  • Puedes usar herramientas populares para respaldo y migración como AWS CLI, rclone y Cyberduck.
  • Revisa la guía de Cyberduck.

S3 para ingenieros de datos

  • La compatibilidad con S3 ofrece una buena base para ingenieros de datos. Puede usarse con muchas herramientas populares, como data warehouses tipo ClickHouse, motores de consulta como DuckDB, Spark, Trino y Snowflake External Table, así como cargadores de datos como Fivetran y Airbyte.
  • En el ejemplo, Tyler, nuestro increíble analista de datos, muestra cómo guardar archivos Parquet en Supabase Storage y consultarlos directamente con DuckDB.

Cargas multipart en S3

  • Además de las cargas estándar y las cargas reanudables, ahora también se soportan cargas multipart a través del protocolo S3. Esto permite subir chunks en paralelo para maximizar el rendimiento de carga, y luego se ensamblan al final.

Lanzamiento general de Resumable Uploads

  • Junto con el anuncio de GA de la plataforma, nos da gusto compartir que Resumable Uploads también ya está disponible de forma general.
  • Resumable Uploads funciona con el protocolo TUS. Este proceso fue muy gratificante gracias a la estrecha colaboración con el equipo de TUS. Agradecemos especialmente a @murderlon y @acconut, responsables del protocolo TUS, por su enfoque colaborativo hacia el código abierto.

Contribuciones de Supabase

  • Supabase contribuyó con algunas funciones avanzadas a la implementación en Node de la especificación TUS, incluyendo bloqueo distribuido, tamaño máximo de archivo, extensión de vencimiento y numerosas correcciones de errores.
  • Estas funciones eran esenciales para Supabase y están disponibles porque el servidor TUS para Node es de código abierto. Este es otro principio clave: usar y apoyar herramientas existentes en lugar de desarrollar desde cero cuando sea posible.

Otras mejoras

  • Transferencias entre buckets: antes esto solo podía hacerse dentro del mismo bucket de Supabase; ahora se pueden copiar y mover objetos entre buckets.
  • Códigos de error estandarizados: los códigos de error se estandarizaron en todo el servidor de Storage, y ahora es mucho más fácil usar lógica condicional para errores específicos.
  • Migraciones multi-tenant: mejoraron considerablemente las migraciones que se ejecutan en todos los tenants. Esto redujo los errores de migración en toda la flota y permite ejecutar migraciones de larga duración de forma asíncrona.
  • Separación de dependencias: Storage quedó completamente desacoplado de otros productos de Supabase, por lo que puede ejecutarse como un servicio independiente. Empieza con el archivo docker-compose.

Cómo empezar

  • Revisa la compatibilidad de la API S3 en la documentación
  • Aprende sobre la autenticación S3
  • Prueba S3 con Cyberduck: sigue la guía de integración
  • Prueba S3 con DuckDB: sigue la guía en YouTube

Opinión de GN⁺

  • La compatibilidad con S3 acerca a Supabase Storage un paso más al estándar del almacenamiento en la nube. Como muchas empresas ya usan S3, cambiarse a Supabase se vuelve mucho más fácil.
  • Pero como S3 originalmente es un servicio de AWS, a largo plazo también podría valer la pena considerar que Supabase desarrolle un protocolo propio. Debería evitarse una situación de dependencia de Amazon.
  • Con el lanzamiento general de Resumable Upload, la transferencia de archivos grandes parece que será mucho más sencilla. Destaca que supera las limitaciones del método anterior y mejora la usabilidad.
  • Construir pipelines de ingeniería de datos aprovechando S3 es un caso muy atractivo. Si se usa bien, puede ayudar a modernizar la infraestructura de datos empresarial.
  • Resulta impresionante que Supabase haya contribuido directamente a mejorar el protocolo TUS y que eso vuelva al ecosistema open source. Está cumpliendo bien su papel no solo como usuario de open source, sino también como contribuidor.

1 comentarios

 
GN⁺ 2024-04-20
Comentarios de Hacker News
  • El CEO de Supabase presenta una nueva actualización de su producto Storage. Este producto permite almacenar archivos de gran tamaño y añade compatibilidad con S3, lo que hace posible usarlo con miles de herramientas existentes. Se destaca especialmente su potencial para científicos e ingenieros de datos.

  • Un usuario celebra que ahora se pueda aprovechar un proveedor de CDN compatible con S3, aunque también señala que Supabase todavía tiene aspectos por mejorar. En general, evalúa de forma positiva la dirección en la que está avanzando Supabase.

  • Se compartió un ejemplo en el que DuckDB ahora puede consultar archivos parquet directamente desde Supabase Storage, que ya soporta el protocolo S3.

  • También hay una opinión de un usuario que prefiere el método de almacenamiento Large Object de PostgreSQL.

  • Se plantea una pregunta sobre qué tan fácil es hacer self-hosting de Supabase. Por temas de costos, se preguntan qué tan sencillo sería migrar a una instalación autohospedada.

  • También se menciona que Supabase incorporó al equipo de Oriole, junto con la opinión de un usuario que está considerando integrarlo con Cloudflare R2.

  • Hay preguntas sobre la forma en que está implementado Supabase Storage, en particular si los datos realmente se almacenan en PostgreSQL y si admite actualizaciones transaccionales.

  • Un usuario expresa confianza y cariño por Supabase, y desea que no sea adquirida y arruinada.

  • También hay una opinión que expresa extrañeza ante el hecho de que la API propietaria de AWS S3 se haya convertido de facto en el estándar de la industria.

  • También se plantea una pregunta sobre si hay soporte para URL prefirmadas (pre-signed URL).