3 Punkte von GN⁺ 2024-10-21 | 2 Kommentare | Auf WhatsApp teilen
  • Eine Bibliothek von awslabs, mit der sich Amazon S3 als Git-Remote und LFS-Server verwenden lässt
  • Eine Implementierung eines Git-Remote-Helpers, um S3 als serverlosen Git-Server zu nutzen
  • Enthält außerdem eine Implementierung für git-lfs Custom Transfer, mit der sich LFS-Verwaltungsdateien in denselben S3-Bucket pushen lassen
  • Python-Skript. Läuft ab Version 3.9
  • Alle Daten werden standardmäßig bei der Speicherung und Übertragung verschlüsselt. Für eine zusätzliche Sicherheitsebene können kundenseitig verwaltete KMS-Schlüssel verwendet werden, um Daten im S3-Bucket zu verschlüsseln. Zur Kostensenkung wird die Verwendung von Bucket Keys empfohlen
  • Die Zugriffskontrolle auf das Remote wird über IAM-Berechtigungen sichergestellt. Steuerung ist auf Bucket-, Präfix- und KMS-Schlüssel-Ebene möglich
  • Aufgrund der verteilten Natur von git kann es selten vorkommen, dass mehrere Nutzer gleichzeitig git push auf denselben Branch ausführen. In diesem Fall werden mehrere Bundles in S3 gespeichert und spätere git push-Vorgänge können fehlschlagen. Zur Behebung dieses Problems muss der Befehl git-remote-s3 doctor ausgeführt werden.

Zusammenfassung von GN⁺

  • git-remote-s3 ist ein nützliches Tool, mit dem sich Amazon S3 als serverloses Git-Remote und LFS-Server verwenden lässt.
  • Sicherheit lässt sich durch Datenverschlüsselung und Zugriffskontrolle erhöhen.
  • Es stellt auch ein Werkzeug zur Behebung von Problemen bei gleichzeitigen Schreibvorgängen bereit und verbessert so die Zuverlässigkeit.
  • Ein anderes Projekt mit ähnlicher Funktionalität ist lfs-s3.

2 Kommentare

 
ganadist 2024-10-22

Es wirkt, als würde es unerwartet ziemlich lästig werden, wenn man neben Git auch für LFS noch eine separate Authentifizierung anhängt und verwendet.

 
GN⁺ 2024-10-21
Hacker-News-Kommentare
  • Wenn man S3 als Git-Remote verwenden möchte, aber Bedenken hinsichtlich des Datenschutzes hat, wurde mit Restic ein Tool gebaut, das S3 als nicht vertrauenswürdiges Git-Remote verwendet

  • Man sollte daran denken, dass die minimale Abrechnungseinheit bei AWS S3 128 KB beträgt. Wenn der Source-Tree voller kleiner Dateien ist, können die Kosten für das Git-Repository höher ausfallen als erwartet

  • Überraschend, dass sich das nur mit einem S3-Bucket umsetzen lässt. Es wurde versucht, einen S3-Bucket mit API Gateway, Lambda-Funktionen und einer DynamoDB-Tabelle zu unterstützen. An eine clientseitige Implementierung wurde dabei nicht gedacht

  • Schade, dass trotz der Existenz von moto alles gemockt wird

  • Moto ist zwar eine Möglichkeit, das Problem zu lösen, aber es gibt sehr viele Implementierungen von S3-Storage. Dazu gehört auch MinIO in der Apache-2-Version, und bei etwas so Stabilen wie der S3-API braucht man nicht unbedingt die neueste Version

  • Es wird rudolfs verwendet, das in Rust geschrieben ist. Die Performance ist hervorragend, aber nicht alle benötigten Funktionen sind vorhanden, etwa Authentifizierung

  • Für LFS auf S3 wird seit Langem ein CloudFormation-Template verwendet

  • GitHub sollte die Preise für LFS senken

  • Mit Cloudflare Workers ließen sich Einrichtungsaufwand und bewegliche Teile reduzieren

  • Für den LFS-Teil funktioniert dvc besser als git-lfs und unterstützt S3 von Haus aus

  • git-annex bietet ebenfalls native Unterstützung für S3

  • Da sich auf S3 nicht transaktional und konsistent pushen lässt, wirkt es wie das falsche Werkzeug

  • Es wirkt wie das falsche Werkzeug zum Hosten von Git-Repositories