3 पॉइंट द्वारा GN⁺ 2024-10-21 | 2 टिप्पणियां | WhatsApp पर शेयर करें
  • awslabs की लाइब्रेरी, जो Amazon S3 को git remote और LFS server के रूप में इस्तेमाल करने देती है
  • S3 को serverless Git server की तरह इस्तेमाल करने के लिए git remote helper implementation
  • साथ ही, उसी S3 bucket में LFS management files को push करने के लिए git-lfs custom transfer implementation भी शामिल है
  • Python script. 3.9 या उससे ऊपर पर काम करती है
  • सभी डेटा डिफ़ॉल्ट रूप से storage और transfer के दौरान encrypted होता है. अतिरिक्त security layer के लिए customer-managed KMS key का उपयोग करके S3 bucket में डेटा को encrypt किया जा सकता है. लागत कम करने के लिए bucket key के उपयोग की सिफारिश की जाती है
  • IAM permissions के जरिए remote पर access control सुनिश्चित किया जाता है. इसे bucket level, prefix level और KMS key level पर नियंत्रित किया जा सकता है
  • git की distributed प्रकृति के कारण, दुर्लभ मामलों में कई उपयोगकर्ता एक ही branch पर एक साथ git push चला सकते हैं. इस स्थिति में कई bundles S3 में store हो जाते हैं और बाद के git push असफल हो सकते हैं. इस समस्या को हल करने के लिए git-remote-s3 doctor कमांड चलानी चाहिए

GN⁺ का सार

  • git-remote-s3 एक उपयोगी टूल है, जो Amazon S3 को serverless Git remote और LFS server के रूप में इस्तेमाल करने देता है.
  • डेटा encryption और access control के जरिए security को मजबूत किया जा सकता है.
  • concurrent write समस्या को हल करने के लिए टूल भी प्रदान किया गया है, जिससे reliability बढ़ती है.
  • समान कार्यक्षमता देने वाले दूसरे प्रोजेक्ट्स में lfs-s3 शामिल है.

2 टिप्पणियां

 
ganadist 2024-10-22

Git के अलावा अगर LFS पर भी अलग authentication लगाकर इस्तेमाल करें, तो उम्मीद से ज़्यादा झंझट वाली बातें पैदा हो सकती हैं।

 
GN⁺ 2024-10-21
Hacker News टिप्पणियाँ
  • अगर आप S3 को git remote के रूप में इस्तेमाल करना चाहते हैं लेकिन privacy को लेकर चिंतित हैं, तो Restic का उपयोग करके S3 को untrusted git remote की तरह इस्तेमाल करने वाला एक टूल बनाया गया है

  • यह याद रखना चाहिए कि AWS S3 की न्यूनतम billing unit 128KB है। अगर source tree छोटी files से भरा है, तो Git repository की लागत उम्मीद से ज्यादा हो सकती है

  • यह देखकर हैरानी हुई कि इसे सिर्फ S3 bucket से लागू किया जा सकता है। S3 bucket को सपोर्ट करने के लिए API Gateway, Lambda functions और DynamoDB tables का इस्तेमाल करने की सोच रहा था। client side पर इसे implement करने का विचार नहीं आया था

  • moto मौजूद होने के बावजूद सब कुछ mock करना अफसोसजनक है

  • समस्या हल करने के एक तरीके के रूप में moto है, लेकिन S3 storage implementations बहुत हैं। इसमें Apache 2 version वाला minio भी शामिल है, और S3 API जैसी स्थिर चीज़ों के लिए latest version इस्तेमाल करने की ज़रूरत नहीं है

  • Rust में लिखा हुआ rudolfs इस्तेमाल कर रहा हूँ। performance शानदार है, लेकिन ज़रूरी सभी features (authentication) नहीं हैं

  • S3 पर LFS के लिए CloudFormation template का लंबे समय से उपयोग कर रहा हूँ

  • GitHub को LFS की कीमत कम करनी चाहिए

  • Cloudflare Workers का उपयोग करके setup steps / moving parts कम किए जा सकते हैं

  • LFS वाले हिस्से में dvc, git-lfs से बेहतर काम करता है और S3 को by default सपोर्ट करता है

  • git-annex भी S3 के लिए built-in support देता है

  • S3 में transactional और consistent तरीके से push नहीं किया जा सकता, इसलिए यह गलत टूल जैसा लगता है

  • Git repository host करने के लिए यह गलत टूल जैसा लगता है