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:
- 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.
- 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
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.