- 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
Si además de git le agregas autenticación aparte a lfs, parece que terminan surgiendo bastantes molestias inesperadas.
Opiniones en Hacker News
Si quieres usar S3 como
git remotepero te preocupa la privacidad, alguien creó una herramienta que usa Restic para utilizar S3 como ungit remoteno confiableHay 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
pushcon transacciones y consistenciaParece la herramienta equivocada para alojar repositorios Git