3 puan yazan GN⁺ 2024-10-21 | 2 yorum | WhatsApp'ta paylaş
  • Amazon S3'ü git uzak deposu ve LFS sunucusu olarak kullanmayı mümkün kılan awslabs kütüphanesi
  • S3'ü sunucusuz bir Git sunucusu olarak kullanmak için bir git remote helper uygulaması
  • Ayrıca aynı S3 bucket'ına LFS yönetim dosyalarını push etmeyi sağlayan bir git-lfs custom transfer uygulaması da içeriyor
  • Python betiği. 3.9 ve üzeri sürümlerde çalışıyor
  • Tüm veriler varsayılan olarak depolama ve aktarım sırasında şifrelenir. Ek bir güvenlik katmanı için S3 bucket'ındaki veriler müşteri tarafından yönetilen KMS anahtarlarıyla şifrelenebilir. Maliyeti azaltmak için bucket key kullanılması önerilir
  • IAM izinleri üzerinden uzak depoya erişim kontrolü sağlanır. Bucket düzeyi, önek düzeyi ve KMS anahtarı düzeyinde kontrol edilebilir
  • git'in dağıtık yapısı nedeniyle nadir de olsa birden fazla kullanıcı aynı branch için aynı anda git push çalıştırabilir. Bu durumda birden fazla bundle S3'e kaydedilir ve sonraki git push işlemleri başarısız olabilir. Bu sorunu çözmek için git-remote-s3 doctor komutu çalıştırılmalıdır.

GN⁺ Özeti

  • git-remote-s3, Amazon S3'ü sunucusuz bir Git uzak deposu ve LFS sunucusu olarak kullanmayı sağlayan faydalı bir araçtır.
  • Veri şifreleme ve erişim kontrolü ile güvenlik güçlendirilebilir.
  • Eşzamanlı yazma sorununu çözmek için araçlar da sunarak güvenilirliği artırır.
  • Benzer işlevler sunan başka bir proje olarak lfs-s3 bulunur.

2 yorum

 
ganadist 2024-10-22

Git dışında LFS için de ayrı bir kimlik doğrulama ekleyip kullanınca, beklenmedik şekilde epey uğraştırıcı işler çıkacak gibi görünüyor.

 
GN⁺ 2024-10-21
Hacker News görüşleri
  • S3'ü bir git remote olarak kullanmak isteyip gizlilikten endişe ediyorsanız, Restic kullanarak S3'ü güvenilmeyen bir git remote olarak kullanan bir araç yapılmış

  • AWS S3'ün minimum faturalandırma biriminin 128KB olduğunu unutmamak gerekir. Kaynak ağacı küçük dosyalarla doluysa Git deposunun maliyeti beklenenden yüksek olabilir

  • Bunun yalnızca bir S3 bucket ile yapılabilmesine şaşırdım. S3 bucket'ı desteklemek için API Gateway, Lambda fonksiyonları ve DynamoDB tabloları kullanmayı düşünmüştüm. Bunun istemci tarafında uygulanabileceği aklıma gelmemişti

  • moto varken her şeyi mocklamak biraz üzücü

  • Sorunu çözmenin bir yolu olarak moto var, ancak S3 deposu implementasyonu çok fazla. Buna Apache 2 sürümündeki minio da dahil ve S3 API kadar stabil bir şey için en güncel sürümü kullanmak gerekmiyor

  • Rust ile yazılmış rudolfs kullanıyorum. Performansı harika ama ihtiyaç duyulan tüm özelliklere sahip değil (kimlik doğrulama)

  • S3 üzerinde LFS için bir CloudFormation şablonunu uzun süredir kullanıyorum

  • GitHub, LFS fiyatlarını düşürmeli

  • Cloudflare Workers kullanarak kurulum adımlarını/hareketli parçaları azaltabilirsiniz

  • LFS tarafında dvc, git-lfs'ten daha iyi çalışıyor ve S3 desteği yerleşik olarak geliyor

  • git-annex de S3 için yerleşik destek sunuyor

  • S3'te işlemsel ve tutarlı şekilde push yapmak mümkün olmadığından bu yanlış bir araç gibi görünüyor

  • Git deposu barındırmak için yanlış araç gibi görünüyor