3 puntos por GN⁺ 2024-10-21 | 2 comentarios | Compartir por WhatsApp
  • Una biblioteca de awslabs que permite usar Amazon S3 como remoto de git y servidor LFS
  • Implementación de un helper remoto de git para usar S3 como un servidor Git sin servidor
  • También incluye una implementación de transferencia personalizada de git-lfs para hacer push de archivos administrados por LFS al mismo bucket de S3
  • Script de Python. Funciona en 3.9 o superior
  • Todos los datos se cifran de forma predeterminada tanto en reposo como en tránsito. Para una capa adicional de seguridad, se pueden cifrar los datos en el bucket de S3 usando claves KMS administradas por el cliente. Para reducir costos, se recomienda usar bucket keys
  • El control de acceso al remoto está garantizado mediante permisos de IAM. Se puede controlar a nivel de bucket, prefijo y clave KMS
  • Debido a la naturaleza distribuida de git, aunque es poco frecuente, varios usuarios pueden ejecutar git push al mismo tiempo sobre la misma rama. En ese caso, se almacenan varios bundles en S3 y los siguientes git push pueden fallar. Para resolver este problema, se debe ejecutar el comando git-remote-s3 doctor

Resumen de GN⁺

  • git-remote-s3 es una herramienta útil que permite usar Amazon S3 como remoto de Git y servidor LFS sin servidor.
  • La seguridad puede reforzarse mediante cifrado de datos y control de acceso.
  • También ofrece una herramienta para resolver problemas de escritura concurrente, lo que mejora la estabilidad.
  • Otro proyecto con funciones similares es lfs-s3.

2 comentarios

 
ganadist 2024-10-22

Si además de git le agregas autenticación aparte a lfs, parece que terminan surgiendo bastantes molestias inesperadas.

 
GN⁺ 2024-10-21
Opiniones en Hacker News
  • Si quieres usar S3 como git remote pero te preocupa la privacidad, alguien creó una herramienta que usa Restic para utilizar S3 como un git remote no confiable

  • Hay que recordar que la unidad mínima de facturación de AWS S3 es 128 KB. Si tu árbol de código fuente está lleno de archivos pequeños, el costo del repositorio Git puede ser más alto de lo esperado

  • Me sorprendió que pueda implementarse solo con un bucket de S3. Yo había intentado respaldar un bucket de S3 usando API Gateway, funciones Lambda y tablas de DynamoDB. No se me había ocurrido implementarlo del lado del cliente

  • Es una pena que se haga mocking de todo a pesar de que existe moto

  • Una forma de resolver el problema es moto, pero hay muchísimas implementaciones de almacenamiento S3. También está minio en versión Apache 2, y para algo tan estable como la API de S3 no hace falta usar la versión más reciente

  • Estoy usando rudolfs, escrito en Rust. El rendimiento es excelente, pero no tiene todas las funciones que necesito (autenticación)

  • Llevo mucho tiempo usando una plantilla de CloudFormation para LFS en S3

  • GitHub debería bajar el precio de LFS

  • Se pueden reducir los pasos de configuración y las piezas móviles usando Cloudflare Workers

  • Para la parte de LFS, dvc funciona mejor que git-lfs y admite S3 de forma nativa

  • git-annex también ofrece soporte nativo para S3

  • Parece la herramienta equivocada porque en S3 no se puede hacer push con transacciones y consistencia

  • Parece la herramienta equivocada para alojar repositorios Git