- Biblioteca da awslabs que permite usar o Amazon S3 como remoto do git e servidor LFS
- Implementação de um git remote helper para usar o S3 como servidor Git serverless
- Também inclui uma implementação de custom transfer do git-lfs que permite fazer push de arquivos de gerenciamento do LFS para o mesmo bucket S3
- Script em Python. Funciona na versão 3.9 ou superior
- Todos os dados são criptografados por padrão em repouso e em trânsito. Para uma camada extra de segurança, é possível criptografar os dados no bucket S3 com chaves KMS gerenciadas pelo cliente. Para reduzir custos, recomenda-se usar bucket keys
- O controle de acesso ao remoto é garantido por permissões IAM. É possível controlar no nível do bucket, do prefixo e da chave KMS
- Devido à natureza distribuída do
git, embora seja raro, vários usuários podem executar git push ao mesmo tempo no mesmo branch. Nesse caso, vários bundles podem ser armazenados no S3 e pushes posteriores com git push podem falhar. Para resolver esse problema, é necessário executar o comando git-remote-s3 doctor
Resumo do GN⁺
git-remote-s3 é uma ferramenta útil que permite usar o Amazon S3 como servidor remoto Git e LFS serverless.
- A segurança pode ser reforçada por meio de criptografia de dados e controle de acesso.
- Também oferece ferramentas para resolver problemas de escrita simultânea, aumentando a confiabilidade.
- Outro projeto com funcionalidade semelhante é o
lfs-s3.
2 comentários
Parece que, ao usar uma autenticação separada para o LFS além do git, acabam surgindo surpreendentemente muitas complicações incômodas.
Comentários do Hacker News
Se você quer usar o S3 como
git remote, mas se preocupa com privacidade, foi criada uma ferramenta que usa o Restic para usar o S3 como umgit remotenão confiávelÉ preciso lembrar que a unidade mínima de cobrança do AWS S3 é 128 KB. Se a árvore de código-fonte estiver cheia de arquivos pequenos, o custo do repositório Git pode acabar sendo maior do que o esperado
Fiquei surpreso por isso poder ser implementado apenas com um bucket S3. Eu estava tentando dar suporte a um bucket S3 usando API Gateway, funções Lambda e tabelas DynamoDB. Não tinha pensado em implementar isso do lado do cliente
É uma pena fazer mock de tudo mesmo existindo o moto
Uma forma de resolver o problema é usar o moto, mas existem muitas implementações de armazenamento S3. Isso inclui também a versão Apache 2 do minio, e para algo tão estável quanto a API do S3 não há necessidade de usar a versão mais recente
Estou usando o rudolfs, escrito em Rust. O desempenho é excelente, mas ele não tem todos os recursos de que preciso, como autenticação
Uso há muito tempo um template do CloudFormation para LFS no S3
O GitHub deveria reduzir o preço do LFS
Dá para reduzir as etapas de configuração e as partes móveis usando Cloudflare Workers
Na parte de LFS, o dvc funciona melhor que o git-lfs e oferece suporte nativo ao S3
O git-annex também oferece suporte nativo ao S3
No S3, não é possível fazer push com transações e consistência, então isso parece a ferramenta errada
Parece a ferramenta errada para hospedar um repositório Git