3 Punkte von GN⁺ 2024-04-20 | 1 Kommentare | Auf WhatsApp teilen

Offizieller Start von S3-Kompatibilität und Resumable Uploads für Supabase Storage

  • Supabase Storage ist jetzt ein S3-kompatibler Storage-Anbieter. Das ist eine der am häufigsten gewünschten Funktionen und aktuell als öffentliche Alpha verfügbar.
  • Resumable Uploads wurden ebenfalls von der Beta in die stabile Version überführt.
  • Die Supabase-Storage-Engine ist vollständig Open Source und eine der wenigen Storage-Lösungen, die drei interoperable Protokolle für die Dateiverwaltung bereitstellt.
    • Standard uploads: einfacher Einstieg
    • Resumable uploads: wiederaufnehmbare Uploads für große Dateien
    • S3 uploads: für die Kompatibilität mit verschiedenen Tools

S3-Kompatibilität

  • Supabase bemüht sich seit jeher darum, Industriestandards zu übernehmen. Die Unterstützung von Standards macht Workloads portierbar und ist daher ein zentrales Produktprinzip.
  • Die S3-API ist ohne Zweifel der Storage-Standard, und wir machen sie für Entwicklerinnen und Entwickler mit unterschiedlichsten Erfahrungsstufen zugänglich.
  • Das S3-Protokoll ist abwärtskompatibel zu den anderen APIs. Wenn du Storage bereits über die REST- oder TUS-API nutzt, kannst du ab heute mit S3-Clients mit Buckets und Dateien interagieren: mit TUS hochladen, über REST ausliefern und über das S3-Protokoll verwalten.
  • Das Protokoll funktioniert in der Cloud, in der lokalen Entwicklung und beim Self-Hosting. In der Dokumentation findest du Details zur API-Kompatibilität.

Supabase-S3-Authentifizierung

  • Für die Authentifizierung mit Supabase S3 gibt es zwei Optionen:
    1. Standard-Zugangsdaten mit access_key und secret_key. Diese können auf der Seite mit den Storage-Einstellungen erstellt werden. Diese Authentifizierungsmethode ist breit mit Tools kompatibel, die das S3-Protokoll unterstützen. Da sie vollständige Zugriffsrechte auf Storage-Ressourcen gewährt, ist sie nur für den serverseitigen Einsatz gedacht.
      • Künftig sollen Access-Key-Zugangsdaten mit eingeschränktem Scope hinzukommen, die Zugriff auf bestimmte Buckets erlauben.
    2. Benutzerbezogene Zugangsdaten mit RLS. Dabei wird Row Level Security genutzt, ein Konzept, das in allen Supabase-Services gut etabliert ist. So lässt sich die Arbeit mit dem S3-Protokoll auf bestimmte authentifizierte Nutzer oder Rollen innerhalb von Storage-Operationen eingrenzen, während bestehende RLS-Richtlinien respektiert werden. Möglich wird das durch den vom S3-Protokoll unterstützten Session-Token-Header. Weitere Details zur Nutzung dieses Session-Token-Mechanismus findest du in der Dokumentation.

S3-kompatible Integrationen

  • Dank Unterstützung des S3-Protokolls lässt sich Supabase Storage nun mit vielen Drittanbieter-Tools und -Services verbinden. Dafür muss lediglich ein jederzeit widerrufbares Zugangsdatenpaar bereitgestellt werden.
  • Es können beliebte Tools für Backups und Migrationen wie AWS CLI, rclone und Cyberduck verwendet werden.
  • Sieh dir die Anleitung für Cyberduck an.

S3 für Data Engineers

  • Die S3-Kompatibilität bietet eine gute Grundlage für Data Engineers. Sie kann mit vielen beliebten Tools genutzt werden, darunter Data Warehouses wie ClickHouse, Query-Engines wie DuckDB, Spark, Trino und Snowflake External Table sowie Data Loader wie Fivetran und Airbyte.
  • In einem Beispiel zeigt unser großartiger Datenanalyst Tyler, wie sich Parquet-Dateien in Supabase Storage speichern und direkt mit DuckDB abfragen lassen.

Multipart Uploads mit S3

  • Zusätzlich zu Standard Uploads und Resumable Uploads werden jetzt auch Multipart Uploads über das S3-Protokoll unterstützt. Damit lassen sich Chunks parallel hochladen, um den Upload-Durchsatz zu maximieren, bevor sie am Ende zusammengefügt werden.

Offizieller Start von Resumable Uploads

  • Im Zuge der GA-Ankündigung der Plattform freuen wir uns, auch den offiziellen Start von Resumable Uploads bekanntgeben zu können.
  • Resumable Uploads werden durch das TUS-Protokoll angetrieben. Die Zusammenarbeit mit dem TUS-Team in diesem Prozess war sehr lohnend. Besonderer Dank gilt @murderlon und @acconut, den Maintainern des TUS-Protokolls, für ihren kollaborativen Ansatz im Open Source.

Beiträge von Supabase

  • Supabase hat einige fortgeschrittene Funktionen zur Node-Implementierung der TUS-Spezifikation beigetragen, darunter verteilte Sperren, maximale Dateigröße, verlängerte Ablauffristen und zahlreiche Bugfixes.
  • Diese Funktionen waren für Supabase essenziell und sind nutzbar, weil der TUS-Node-Server Open Source ist. Das ist ein weiteres Kernprinzip: vorhandene Tools nutzen und unterstützen, statt wenn möglich alles von Grund auf neu zu entwickeln.

Weitere Verbesserungen

  • Bucket-übergreifende Transfers: Vorgänge, die zuvor nur innerhalb desselben Supabase-Buckets möglich waren, erlauben nun auch das Kopieren und Verschieben von Objekten zwischen Buckets.
  • Standardisierte Fehlercodes: Die Fehlercodes wurden über den gesamten Storage-Server hinweg standardisiert, sodass sich Verzweigungslogik für bestimmte Fehler jetzt deutlich einfacher umsetzen lässt.
  • Multi-Tenant-Migrationen: Die Migrationen, die über alle Tenants hinweg laufen, wurden erheblich verbessert. Dadurch wurden Migrationsfehler in der gesamten Flotte reduziert, und lang laufende Migrationen können asynchron ausgeführt werden.
  • Entkopplung von Abhängigkeiten: Storage wurde vollständig von anderen Supabase-Produkten getrennt, sodass es als eigenständiger Service betrieben werden kann. Starte mit der docker-compose-Datei.

Einstieg

  • In der Dokumentation die S3-API-Kompatibilität prüfen
  • Mehr über S3-Authentifizierung erfahren
  • S3 mit Cyberduck ausprobieren: der Integrationsanleitung folgen
  • S3 mit DuckDB ausprobieren: der Anleitung auf YouTube folgen

Meinung von GN⁺

  • Die S3-Kompatibilität bringt Supabase Storage dem Cloud-Storage-Standard einen großen Schritt näher. Da viele Unternehmen bereits S3 einsetzen, wird der Wechsel zu Supabase deutlich einfacher.
  • Allerdings ist S3 ursprünglich ein AWS-Service. Langfristig könnte es sich daher lohnen, auch ein eigenes Protokoll von Supabase in Betracht zu ziehen. Eine zu starke Abhängigkeit von Amazon sollte vermieden werden.
  • Mit dem offiziellen Start von Resumable Uploads dürfte die Übertragung großer Dateien deutlich einfacher werden. Besonders hervorzuheben ist, dass damit die Grenzen bisheriger Ansätze überwunden und die Nutzbarkeit verbessert werden.
  • Der Aufbau von Data-Engineering-Pipelines mit S3 ist ein attraktiver Anwendungsfall. Bei guter Nutzung kann das helfen, Unternehmensdateninfrastrukturen zu modernisieren.
  • Beeindruckend ist auch, dass Supabase direkt zur Verbesserung des TUS-Protokolls beigetragen hat und dies wieder in das Open-Source-Ökosystem zurückfließt. Supabase agiert nicht nur als Nutzer von Open Source, sondern erfüllt seine Rolle als aktiver Contributor überzeugend.

1 Kommentare

 
GN⁺ 2024-04-20
Hacker-News-Kommentare
  • Der CEO von Supabase stellt das neue Update des Storage-Produkts vor. Es dient zum Speichern großer Dateien und unterstützt nun S3-Kompatibilität, sodass es mit Tausenden bestehender Tools verwendet werden kann. Besonders hervorgehoben werden die Möglichkeiten für Data Scientists und Engineers.

  • Ein Nutzer begrüßt, dass sich nun CDN-Anbieter mit S3-Unterstützung nutzen lassen, weist aber auch darauf hin, dass es bei Supabase noch Bereiche mit Verbesserungsbedarf gibt. Insgesamt wird die Entwicklungsrichtung von Supabase positiv bewertet.

  • Es wird ein Beispiel geteilt, in dem DuckDB nun Parquet-Dateien direkt aus Supabase Storage abfragen kann, da dieses jetzt das S3-Protokoll unterstützt.

  • Es gibt auch die Meinung eines Nutzers, der die Speicherung über Large Objects in PostgreSQL bevorzugt.

  • Es wird die Frage aufgeworfen, wie einfach sich Supabase selbst hosten lässt. Aus Kostengründen interessiert, wie leicht ein Wechsel zu Self-Hosting wäre.

  • Erwähnt wird auch, dass Supabase das Oriole-Team eingestellt hat, sowie die Meinung eines Nutzers, der eine Integration mit Cloudflare R2 in Betracht zieht.

  • Es gibt Fragen zur Implementierung von Supabase Storage, insbesondere dazu, ob die Daten tatsächlich in PostgreSQL gespeichert werden und ob transaktionale Updates unterstützt werden.

  • Ein Nutzer drückt Vertrauen und Sympathie für Supabase aus und hofft, dass das Unternehmen nicht übernommen und dadurch ruiniert wird.

  • Es gibt auch eine Meinung, die Verwunderung darüber ausdrückt, dass die proprietäre API von AWS S3 de facto zum Industriestandard geworden ist.

  • Außerdem wird die Frage gestellt, ob vorab signierte URLs (pre-signed URLs) unterstützt werden.