LFS के साथ Git रिपॉजिटरी से फ़ाइलें कैसे पुनर्प्राप्त करें

LFS के साथ Git रिपॉजिटरी से फ़ाइलें कैसे पुनर्प्राप्त करें
Shell Script

फ़ाइलें डाउनलोड करने के लिए cURL का उपयोग करना

Git रिपॉजिटरी में बड़ी फ़ाइलों के साथ काम करते समय, Git LFS (बड़ी फ़ाइल संग्रहण) एक उपकरण है जो आपको इन फ़ाइलों को कुशलतापूर्वक संभालने की अनुमति देता है। इस गाइड में, हम यह पता लगाएंगे कि रिमोट रिपॉजिटरी से फ़ाइलें डाउनलोड करने के लिए निजी टोकन के साथ कर्ल कमांड का उपयोग कैसे करें।

यह विधि Git रिपॉजिटरी से फ़ाइल पुनर्प्राप्ति को स्वचालित करने के लिए उपयोगी है, यह सुनिश्चित करते हुए कि आप केवल एक पॉइंटर के बजाय संपूर्ण फ़ाइल सामग्री प्राप्त करते हैं। Git LFS और cURL का उपयोग करके फ़ाइलों को प्रभावी ढंग से डाउनलोड करने के लिए नीचे दिए गए चरणों का पालन करें।

आज्ञा विवरण
curl --header "PRIVATE-TOKEN: $PRIVATE_TOKEN" प्रमाणीकरण के लिए अनुरोध शीर्षलेख में एक निजी टोकन शामिल करने के लिए उपयोग किया जाता है।
--output "$OUTPUT_FILE" आउटपुट फ़ाइल का नाम निर्दिष्ट करता है जहां डाउनलोड की गई सामग्री सहेजी जाएगी।
if [ $? -eq 0 ]; then यह निर्धारित करने के लिए कि क्या यह सफल था, पिछले कमांड की निकास स्थिति की जाँच करता है।
requests.get(file_url, headers=headers) URL से फ़ाइल लाने के लिए निर्दिष्ट हेडर के साथ HTTP GET अनुरोध करता है।
with open(output_file, "wb") as file: डाउनलोड की गई सामग्री को सहेजने के लिए राइट-बाइनरी मोड में एक फ़ाइल खोलता है।
response.status_code == 200 स्टेटस कोड की 200 से तुलना करके जाँचता है कि HTTP अनुरोध सफल था या नहीं।

डाउनलोड स्क्रिप्ट को समझना

प्रदान की गई स्क्रिप्ट Git LFS का उपयोग करने वाले Git रिपॉजिटरी से फ़ाइलों को डाउनलोड करने की प्रक्रिया को स्वचालित करने के लिए डिज़ाइन की गई हैं। पहली स्क्रिप्ट एक शेल स्क्रिप्ट का उपयोग है curl. इसमें जैसे कमांड शामिल हैं curl --header "PRIVATE-TOKEN: $PRIVATE_TOKEN" एक निजी टोकन का उपयोग करके अनुरोध को प्रमाणित करने के लिए, और --output "$OUTPUT_FILE" आउटपुट फ़ाइल नाम निर्दिष्ट करने के लिए। स्क्रिप्ट जाँचती है कि डाउनलोड कमांड के साथ सफल हुआ या नहीं if [ $? -eq 0 ]; then और परिणाम के आधार पर एक सफलता संदेश या एक विफलता संदेश प्रिंट करता है।

दूसरी स्क्रिप्ट पायथन में लिखी गई है और इसका उपयोग करती है requests HTTP GET अनुरोध निष्पादित करने के लिए लाइब्रेरी। इसमें जैसे कमांड शामिल हैं requests.get(file_url, headers=headers) प्रमाणीकरण के लिए दिए गए हेडर के साथ यूआरएल से फ़ाइल लाने के लिए। डाउनलोड की गई सामग्री का उपयोग करके सहेजा जाता है with open(output_file, "wb") as file:. यह स्क्रिप्ट तुलना करके यह भी जाँचती है कि HTTP अनुरोध सफल था या नहीं response.status_code == 200 और फिर सामग्री को एक फ़ाइल में लिखता है, डाउनलोड की सफलता के आधार पर एक उपयुक्त संदेश प्रिंट करता है।

कर्ल और प्रमाणीकरण के साथ Git LFS फ़ाइलें डाउनलोड करना

फ़ाइल डाउनलोड के लिए कर्ल का उपयोग कर शेल स्क्रिप्ट

# Define variables
PRIVATE_TOKEN="glpat-123abc"
FILE_URL="http://car.wg:8100/api/v4/projects/67/repository/files/v001%2F20220531.tar.gz/raw?ref=master"
OUTPUT_FILE="20220531.tar.gz"

# Download the file using cURL
curl --header "PRIVATE-TOKEN: $PRIVATE_TOKEN" \
     "$FILE_URL" --output "$OUTPUT_FILE"

# Check if the download was successful
if [ $? -eq 0 ]; then
    echo "File downloaded successfully."
else
    echo "Failed to download the file."
fi

Git LFS फ़ाइल पुनर्प्राप्ति को स्वचालित करने के लिए पायथन स्क्रिप्ट

HTTP अनुरोधों के लिए पायथन स्क्रिप्ट

import requests

# Define variables
private_token = "glpat-123abc"
file_url = "http://car.wg:8100/api/v4/projects/67/repository/files/v001%2F20220531.tar.gz/raw?ref=master"
output_file = "20220531.tar.gz"

# Set up headers for authentication
headers = {
    "PRIVATE-TOKEN": private_token
}

# Make the request
response = requests.get(file_url, headers=headers)

# Save the file if the request was successful
if response.status_code == 200:
    with open(output_file, "wb") as file:
        file.write(response.content)
    print("File downloaded successfully.")
else:
    print(f"Failed to download the file: {response.status_code}")

Git LFS के साथ फ़ाइल पुनर्प्राप्ति को स्वचालित करना

Git LFS (बड़ी फ़ाइल संग्रहण) Git के लिए एक शक्तिशाली एक्सटेंशन है, जो डेवलपर्स को बड़ी फ़ाइलों को कुशलतापूर्वक संस्करणित करने की अनुमति देता है। दूरस्थ रिपॉजिटरी के साथ काम करते समय, इन बड़ी फ़ाइलों को डाउनलोड करने के लिए केवल पॉइंटर फ़ाइल को पुनर्प्राप्त करने से बचने के लिए विशेष प्रबंधन की आवश्यकता होती है। एक महत्वपूर्ण पहलू स्वचालित स्क्रिप्ट में प्रमाणीकरण के लिए निजी टोकन का उपयोग है। यह सुनिश्चित करता है कि फ़ाइलों को डाउनलोड करने का अनुरोध सुरक्षित और प्रमाणित है, जिससे वास्तविक फ़ाइल सामग्री तक पहुंच की अनुमति मिलती है।

इसके अतिरिक्त, इन कमांडों को विभिन्न प्रोग्रामिंग वातावरणों में एकीकृत करने के तरीके को समझना आपके वर्कफ़्लो को काफी बढ़ा सकता है। उदाहरण के लिए, का उपयोग करना curl शेल स्क्रिप्ट में या requests पायथन स्क्रिप्ट में लाइब्रेरी Git LFS रिपॉजिटरी से बड़ी फ़ाइलों को लाने की प्रक्रिया को सुव्यवस्थित कर सकती है। ये विधियाँ कार्यों को स्वचालित करने, मैन्युअल हस्तक्षेप को कम करने और यह सुनिश्चित करने में मदद करती हैं कि सही फ़ाइलें डाउनलोड की गईं और आपकी परियोजनाओं में उपयोग की गईं।

Git LFS फ़ाइल पुनर्प्राप्ति के बारे में सामान्य प्रश्न और उत्तर

  1. मैं Git रिपॉजिटरी के लिए कर्ल अनुरोध को कैसे प्रमाणित करूं?
  2. उपयोग curl --header "PRIVATE-TOKEN: your_token" अनुरोध शीर्षलेख में अपना निजी टोकन शामिल करने के लिए।
  3. मुझे वास्तविक सामग्री के बजाय पॉइंटर फ़ाइल क्यों मिलती है?
  4. ऐसा इसलिए होता है क्योंकि Git LFS पॉइंटर्स को Git रिपॉजिटरी में संग्रहीत करता है। आपको उचित आदेशों और प्रमाणीकरण का उपयोग करके वास्तविक सामग्री डाउनलोड करने की आवश्यकता है।
  5. का उद्देश्य क्या है --output कर्ल में विकल्प?
  6. --output विकल्प डाउनलोड की गई सामग्री को सहेजने के लिए फ़ाइल का नाम निर्दिष्ट करता है।
  7. यदि मेरा कर्ल डाउनलोड सफल रहा तो मैं कैसे सत्यापित कर सकता हूं?
  8. निकास स्थिति की जाँच करें if [ $? -eq 0 ]; then यह निर्धारित करने के लिए कि पिछला आदेश सफल था या नहीं।
  9. क्या करता है requests.get() पायथन में करें?
  10. requests.get() प्रमाणीकरण के लिए वैकल्पिक हेडर के साथ निर्दिष्ट URL पर HTTP GET अनुरोध भेजता है।
  11. मैं पायथन में GET अनुरोध की सामग्री को कैसे सहेजूँ?
  12. उपयोग with open(output_file, "wb") as file: किसी फ़ाइल को राइट-बाइनरी मोड में खोलने और सामग्री को सहेजने के लिए।
  13. क्यों response.status_code पायथन में महत्वपूर्ण?
  14. यह आपको यह सुनिश्चित करने के लिए HTTP प्रतिक्रिया के स्थिति कोड की जांच करने की अनुमति देता है कि अनुरोध सफल था (200 का अर्थ है सफलता)।
  15. क्या मैं Git LFS फ़ाइल डाउनलोड को स्वचालित कर सकता हूँ?
  16. हां, आप शेल स्क्रिप्ट का उपयोग करके डाउनलोड को स्वचालित कर सकते हैं curl या पायथन स्क्रिप्ट के साथ requests.

Git LFS फ़ाइल पुनर्प्राप्ति पर अंतिम विचार

Git LFS का उपयोग करने वाली Git रिपॉजिटरी से फ़ाइलों को पुनर्प्राप्त करना, दिए गए शेल और Python स्क्रिप्ट का उपयोग करके कुशलतापूर्वक स्वचालित किया जा सकता है। ये स्क्रिप्ट्स जैसे आवश्यक कमांड का लाभ उठाती हैं curl और requests प्रमाणीकरण और फ़ाइल डाउनलोड प्रक्रियाओं को संभालने के लिए। निजी टोकन को शामिल करके, ये विधियां रिपॉजिटरी तक सुरक्षित और प्रमाणित पहुंच सुनिश्चित करती हैं, जिससे आप संपूर्ण फ़ाइल सामग्री को निर्बाध रूप से प्राप्त कर सकते हैं।

इन स्क्रिप्ट और अंतर्निहित कमांड को समझने से आपके वर्कफ़्लो में काफी वृद्धि हो सकती है, जिससे Git रिपॉजिटरी से बड़ी फ़ाइलों को प्रबंधित करना और पुनर्प्राप्त करना आसान हो जाता है। सही दृष्टिकोण के साथ, आप इस प्रक्रिया को स्वचालित कर सकते हैं, मैन्युअल प्रयास को कम कर सकते हैं, और यह सुनिश्चित कर सकते हैं कि आपके पास हमेशा अपनी परियोजनाओं के लिए आवश्यक सही फ़ाइल संस्करणों तक पहुंच हो।