AWS CLI और AWS S3 सेटअप करना
S3 के साथ फ़ाइलें सिंक करना शुरू करने से पहले, आपको l को AWS CLI को सही तरीके से सेट अप और कॉन्फ़िगर करना होगा। अगर आप AWS में नए हैं तो यह डरावना लग सकता है, लेकिन इसमें बस कुछ मिनट लगेंगे।
CLI सेटअप में दो मुख्य चरण शामिल हैं: टूल को इंस्टॉल करना और उसे कॉन्फ़िगर करना। मैं अगले सेक्शन में दोनों चरणों को कवर करूंगा।
AWS CLI इंस्टॉल करना
आपके ऑपरेटिंग सिस्टम के आधार पर AWS CLI इंस्टॉलेशन में थोड़ा अंतर हो सकता है।
Windows सिस्टम के लिए:
- AWS CLI के डाउनलोड पेज पर जाएं
- Windows इंस्टॉलर (64-बिट) डाउनलोड करें
- इंस्टॉलर चलाएं और निर्देशों का पालन करें
Linux सिस्टम के लिए:
टर्मिनल से निम्न तीन कमांड चलाएं:
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
macOS सिस्टम के लिए:
मानकर चलें कि आपके पास Homebrew इंस्टॉल है, तो टर्मिनल से यह एक लाइन चलाएं:
brew install awscli
यदि आपके पास Homebrew नहीं है, तो इसके बजाय ये दो कमांड चलाएं:
curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
sudo installer -pkg AWSCLIV2.pkg -target /
आप सभी ऑपरेटिंग सिस्टम पर aws --version कमांड चलाकर सत्यापित कर सकते हैं कि AWS CLI इंस्टॉल हो गया है। आपको कुछ इस तरह दिखाई देगा:

छवि 1 - AWS CLI संस्करण
AWS CLI कॉन्फ़िगर करना
अब जब CLI इंस्टॉल हो गया है, आपको इसे अपने AWS क्रेडेंशियल्स के साथ कॉन्फ़िगर करना होगा।
मानकर चलें कि आपका पहले से AWS खाता है, लॉग इन करें और IAM सेवा पर जाएं। वहां पहुंचने के बाद, प्रोग्राममैटिक एक्सेस के साथ एक नया यूज़र बनाएँ। आपको यूज़र को उपयुक्त अनुमति देनी चाहिए, न्यूनतम रूप से S3 एक्सेस:

छवि 2 - AWS IAM यूज़र
इसके बाद, "Security credentials" पर जाएं और नया एक्सेस की बनाएं। बनाने के बाद आपके पास दोनों Access key ID और Secret access key होंगे। इन्हें कहीं सुरक्षित लिख लें, क्योंकि भविष्य में आप इन्हें दोबारा नहीं देख पाएंगे:

छवि 3 - AWS IAM यूज़र क्रेडेंशियल्स
टर्मिनल पर वापस जाएं और aws configure कमांड चलाएं। यह आपसे Access key ID, Secret access key, रीजन (eu-central-1 मेरे केस में), और पसंदीदा आउटपुट फॉर्मेट (json) दर्ज करने को कहेगा:

छवि 4 - AWS CLI कॉन्फ़िगरेशन
यह जांचने के लिए कि आप CLI से अपने AWS खाते से सफलतापूर्वक जुड़े हैं, निम्न कमांड चलाएं:
aws sts get-caller-identity
आपको ऐसा आउटपुट दिखना चाहिए:

छवि 5 - AWS CLI टेस्ट कनेक्शन कमांड
और बस — S3 sync कमांड का उपयोग शुरू करने से पहले एक और कदम बाकी है!
AWS S3 बकेट सेटअप करना
अंतिम चरण एक S3 बकेट बनाना है जो आपकी समकालिक फ़ाइलों को संग्रहीत करेगा। आप यह CLI से या AWS मैनेजमेंट कंसोल से कर सकते हैं। थोड़ी विविधता के लिए, मैं यहाँ कंसोल का उपयोग करूंगा।
शुरू करने के लिए, मैनेजमेंट कंसोल में S3 सेवा पेज पर जाएं और "Create bucket" बटन पर क्लिक करें। वहां, एक यूनिक बकेट नाम चुनें (पूरे AWS में वैश्विक रूप से यूनिक) और फिर नीचे स्क्रॉल करें और "Create" बटन पर क्लिक करें:

छवि 6 - AWS बकेट निर्माण
बकेट अब बन गया है, और आप इसे मैनेजमेंट कंसोल में तुरंत देखेंगे। आप CLI के माध्यम से भी सत्यापित कर सकते हैं कि यह बन गया है:
aws s3 ls

छवि 7 - उपलब्ध सभी S3 बकेट्स
ध्यान रखें कि S3 बकेट्स डिफ़ॉल्ट रूप से निजी होते हैं। यदि आप बकेट का उपयोग सार्वजनिक फ़ाइलों (जैसे वेबसाइट एसेट्स) की होस्टिंग के लिए करना चाहते हैं, तो आपको बकेट नीतियों और अनुमतियों को उसी अनुसार समायोजित करना होगा।
अब आप पूरी तरह तैयार हैं और अपने लोकल मशीन और AWS S3 के बीच फ़ाइलें सिंक करना शुरू कर सकते हैं!
बेसिक AWS S3 Sync कमांड
अब जब आपने AWS CLI इंस्टॉल और कॉन्फ़िगर कर लिया है, और एक S3 बकेट भी तैयार है, तो अब सिंकिंग शुरू करने का समय है! AWS S3 sync कमांड का बेसिक सिंटैक्स काफी सरल है। मैं दिखाता हूं यह कैसे काम करता है।
S3 sync कमांड इस सरल पैटर्न का पालन करता है:
aws s3 sync <source> <destination> [options]
स्रोत और गंतव्य दोनों या तो लोकल डायरेक्टरी पाथ हो सकते हैं या S3 URI (जो s3:// से शुरू होते हैं)। आप किस दिशा में सिंक करना चाहते हैं, उसके आधार पर इनका क्रम बदल जाएगा।
लोकल से S3 बकेट तक फ़ाइलें सिंक करना
मैंने हाल ही में Ollama डीप रिसर्च के साथ प्रयोग किया। मान लें कि वही फ़ोल्डर मैं S3 पर सिंक करना चाहता हूं। मुख्य डायरेक्टरी Documents फ़ोल्डर के अंदर है। यह कुछ ऐसा दिखता है:

लोकल फ़ोल्डर की सामग्री
यह वह कमांड है जिसे मुझे लोकल code-files फ़ोल्डर को S3 बकेट के backup फ़ोल्डर के साथ सिंक करने के लिए चलाना होगा:
aws s3 sync /Users/dradecic/Documents/code-files s3://testbucket-dradecic/backup
यदि backup फ़ोल्डर S3 बकेट पर मौजूद नहीं है, तो वह स्वचालित रूप से बन जाएगा।
कंसोल पर आपको कुछ ऐसा दिखाई देगा:

छवि 9 - S3 sync प्रक्रिया
कुछ ही सेकंड में, लोकल code-files फ़ोल्डर की सामग्री S3 बकेट पर उपलब्ध हो जाती है:

छवि 10 - S3 बकेट सामग्री
S3 sync की खूबी यह है कि यह केवल उन्हीं फ़ाइलों को अपलोड करता है जो गंतव्य में मौजूद नहीं हैं या जिनमें लोकल रूप से बदलाव हुआ है। यदि आप बिना कुछ बदले वही कमांड फिर चलाते हैं, तो आप देखेंगे... कुछ नहीं! क्योंकि AWS CLI ने पहचान लिया कि सारी फ़ाइलें पहले से सिंक और अप टू डेट हैं।
अब, मैं दो छोटे बदलाव करूंगा — एक नई फ़ाइल (new_file.txt) बनाऊंगा और एक मौजूदा (requirements.txt) को अपडेट करूंगा। जब आप फिर से sync कमांड चलाते हैं, तो केवल नई या संशोधित फ़ाइलें ही अपलोड होंगी:

छवि 11 - S3 sync प्रक्रिया (2)
और बस इतना ही आपको लोकल फ़ोल्डर्स को S3 पर सिंक करते समय जानना है। लेकिन अगर आप विपरीत दिशा में जाना चाहें तो?
S3 बकेट से लोकल डायरेक्टरी तक फ़ाइलें सिंक करना
यदि आप S3 बकेट से अपनी लोकल मशीन पर फ़ाइलें डाउनलोड करना चाहते हैं, तो बस स्रोत और गंतव्य उलट दें:
aws s3 sync s3://testbucket-dradecic/backup /Users/dradecic/Documents/code-files-from-s3
यह कमांड आपके S3 बकेट के backup फ़ोल्डर से सभी फ़ाइलों को code-files-from-s3 नामक लोकल फ़ोल्डर में डाउनलोड कर देगा। फिर से, यदि लोकल फ़ोल्डर मौजूद नहीं है, तो CLI आपके लिए उसे बना देगा:

छवि 12 - S3 से लोकल सिंक
यह ध्यान देने योग्य है कि S3 sync द्विदिश (bidirectional) नहीं है। यह हमेशा स्रोत से गंतव्य की ओर जाता है, और गंतव्य को स्रोत जैसा बना देता है। यदि आप लोकल से कोई फ़ाइल हटाते हैं और फिर S3 पर सिंक करते हैं, तो वह S3 में फिर भी मौजूद रहेगी। इसी तरह, यदि आप S3 में फ़ाइल हटाते हैं और S3 से लोकल पर सिंक करते हैं, तो लोकल फ़ाइल अप्रभावित रहेगी।
यदि आप चाहते हैं कि गंतव्य बिल्कुल स्रोत जैसा हो (हटाई गई फ़ाइलों सहित), तो आपको --delete फ़्लैग का उपयोग करना होगा, जिसे मैं उन्नत विकल्प अनुभाग में कवर करूंगा।
उन्नत AWS S3 Sync विकल्प
पिछले सेक्शन में देखा गया बेसिक S3 sync कमांड अपने आप में शक्तिशाली है, लेकिन AWS ने इसमें कई अतिरिक्त विकल्प जोड़े हैं जो आपको समकालिकरण प्रक्रिया पर अधिक नियंत्रण देते हैं।
इस सेक्शन में, मैं कुछ सबसे उपयोगी फ़्लैग्स दिखाऊंगा जिन्हें आप बेसिक कमांड में जोड़ सकते हैं।
केवल नई या संशोधित फ़ाइलें सिंक करना
डिफ़ॉल्ट रूप से, S3 sync एक बेसिक तुलना तंत्र का उपयोग करता है जो यह निर्धारित करने के लिए फ़ाइल आकार और संशोधन समय की जाँच करता है कि क्या किसी फ़ाइल को सिंक करने की आवश्यकता है। हालांकि, यह तरीका हमेशा सभी बदलाव नहीं पकड़ सकता, खासकर जब फ़ाइल के आकार बदले बिना संशोधन हुआ हो।
अधिक सटीक समकालिकरण के लिए, आप --exact-timestamps फ़्लैग का उपयोग कर सकते हैं:
aws s3 sync /Users/dradecic/Documents/code-files s3://testbucket-dradecic/backup --exact-timestamps
यह S3 sync को मिलीसेकंड तक की सटीकता के साथ टाइमस्टैम्प्स की तुलना करने के लिए बाध्य करता है। ध्यान रखें कि इस फ़्लैग का उपयोग करने से सिंक प्रक्रिया थोड़ी धीमी हो सकती है क्योंकि इसमें अधिक विस्तृत तुलना की आवश्यकता होती है।
विशिष्ट फ़ाइलों को बाहर या शामिल करना
कभी-कभी, आप किसी डायरेक्टरी की हर फ़ाइल को सिंक नहीं करना चाहते। हो सकता है आप अस्थायी फ़ाइलों, लॉग्स, या कुछ विशेष फ़ाइल प्रकारों (जैसे मेरे केस में .DS_Store) को बाहर रखना चाहते हों। ऐसे में --exclude और --include फ़्लैग्स काम आते हैं।
उदाहरण के लिए, मान लें कि मैं अपना कोड डायरेक्टरी सिंक करना चाहता हूं लेकिन सभी Python फ़ाइलों को बाहर रखना चाहता हूं:
aws s3 sync /Users/dradecic/Documents/code-files s3://testbucket-dradecic/backup --exclude "*.py"
अब, बहुत कम फ़ाइलें S3 पर सिंक होती हैं:

छवि 13 - Python फ़ाइलों को बाहर रखकर S3 sync
आप --exclude और --include को मिलाकर अधिक जटिल पैटर्न भी बना सकते हैं। उदाहरण के लिए, सब कुछ बाहर रखें सिवाय Python फ़ाइलों के:
aws s3 sync /Users/dradecic/Documents/code-files s3://testbucket-dradecic/backup --exclude "*" --include "*.py"
पैटर्न उसी क्रम में मूल्यांकित होते हैं जिसमें आप उन्हें देते हैं, इसलिए क्रम मायने रखता है! इन फ़्लैग्स का उपयोग करते समय आपको कुछ ऐसा दिखाई देगा:

छवि 14 - Exclude और include फ़्लैग्स
अब केवल Python फ़ाइलें सिंक होती हैं, और महत्वपूर्ण कॉन्फ़िगरेशन फ़ाइलें गायब हैं।
गंतव्य से फ़ाइलें हटाना
डिफ़ॉल्ट रूप से, S3 sync केवल गंतव्य में फ़ाइलें जोड़ता या अपडेट करता है—कभी हटाता नहीं। इसका मतलब है कि यदि आप स्रोत से कोई फ़ाइल हटाते हैं, तो सिंक करने के बाद भी वह गंतव्य में बनी रहेगी।
गंतव्य को हटाव सहित बिल्कुल स्रोत जैसा बनाने के लिए, --delete फ़्लैग का उपयोग करें:
aws s3 sync /Users/dradecic/Documents/code-files s3://testbucket-dradecic/backup --delete
पहली बार चलाने पर, सभी लोकल फ़ाइलें S3 पर सिंक हो जाएंगी:

छवि 15 - Delete फ़्लैग
यह डायरेक्टरियों की सटीक प्रतिकृतियां बनाए रखने के लिए खास तौर पर उपयोगी है। लेकिन सावधान रहें — इस फ़्लैग का गलत इस्तेमाल डेटा लॉस का कारण बन सकता है।
मान लें कि मैं अपने लोकल फ़ोल्डर से config.py हटाता हूं और --delete फ़्लैग के साथ sync कमांड चलाता हूं:

छवि 16 - Delete फ़्लैग (2)
जैसा कि आप देख सकते हैं, यह कमांड न केवल नई और संशोधित फ़ाइलों को सिंक करता है, बल्कि S3 बकेट से उन फ़ाइलों को भी हटा देता है जो अब लोकल डायरेक्टरी में मौजूद नहीं हैं।
सुरक्षित सिंक के लिए ड्राई रन सेट करना
सबसे खतरनाक S3 sync ऑपरेशन्स वे हैं जिनमें --delete फ़्लैग शामिल हो। अनजाने में महत्वपूर्ण फ़ाइलें हटने से बचने के लिए, आप --dryrun फ़्लैग का उपयोग कर सकते हैं ताकि बिना कोई बदलाव किए ऑपरेशन का सिमुलेशन हो सके:
aws s3 sync /Users/dradecic/Documents/code-files s3://testbucket-dradecic/backup --delete --dryrun
उदाहरण के लिए, मैंने लोकल फ़ोल्डर से requirements.txt और settings.toml फ़ाइलें हटा दीं और फिर कमांड चलाया:

छवि 17 - ड्राई रन
यह आपको बिल्कुल दिखाएगा कि वास्तविक कमांड चलाने पर क्या होगा — कौन-सी फ़ाइलें अपलोड, डाउनलोड, या डिलीट होंगी।
मैं हमेशा सलाह देता हूं कि महत्वपूर्ण डेटा के साथ काम करते समय, खासकर --delete फ़्लैग का उपयोग करते हुए, पहले --dryrun चलाएं।
S3 sync कमांड के लिए और भी कई विकल्प उपलब्ध हैं, जैसे अनुमतियाँ सेट करने के लिए --acl, S3 स्टोरेज टियर चुनने के लिए --storage-class, और सबडायरेक्टरी ट्रैवर्स करने के लिए --recursive। पूरी सूची के लिए आधिकारिक AWS CLI दस्तावेज़ देखें।
अब जब आप S3 sync के बेसिक और उन्नत विकल्पों से परिचित हो गए हैं, तो चलिए देखते हैं कि इन कमांड्स का उपयोग बैकअप और रिस्टोर जैसे व्यावहारिक परिदृश्यों में कैसे करें।
बैकअप और रिस्टोर के लिए AWS S3 Sync का उपयोग
AWS S3 sync का सबसे लोकप्रिय उपयोग मामला महत्वपूर्ण फ़ाइलों का बैकअप लेना और आवश्यकता पड़ने पर उन्हें रिस्टोर करना है। आइए देखते हैं कि आप sync कमांड का उपयोग करके सरल बैकअप और रिस्टोर रणनीति कैसे लागू कर सकते हैं।
S3 पर बैकअप बनाना
S3 sync के साथ बैकअप बनाना सीधा है — आपको बस अपनी लोकल डायरेक्टरी से S3 बकेट तक sync कमांड चलानी है। हालांकि, प्रभावी बैकअप के लिए कुछ सर्वोत्तम प्रथाएं अपनानी चाहिए।
सबसे पहले, बैकअप्स को तारीख या संस्करण के अनुसार व्यवस्थित करना एक अच्छा विचार है। यहाँ S3 पाथ में टाइमस्टैम्प का उपयोग करने का सरल तरीका है:
# Create a timestamp variable
TIMESTAMP=$(date +%Y-%m-%d-%H-%M-%S)
# Run the backup
aws s3 sync /Users/dradecic/Documents/code-files s3://testbucket-dradecic/backups/$TIMESTAMP
यह प्रत्येक बैकअप के लिए 2025-03-10-18-56-42 जैसे टाइमस्टैम्प के साथ एक नया फ़ोल्डर बनाता है। S3 पर आपको कुछ ऐसा दिखेगा:

छवि 18 - टाइमस्टैम्प वाले बैकअप्स
महत्वपूर्ण डेटा के लिए, आप कई बैकअप संस्करण रखना चाहेंगे। टाइमस्टैम्प-आधारित बैकअप नियमित रूप से चलाकर यह करना आसान है।
आप अपने बैकअप के लिए अधिक किफायती स्टोरेज क्लास निर्दिष्ट करने के लिए --storage-class विकल्प का भी उपयोग कर सकते हैं:
aws s3 sync /Users/dradecic/Documents/code-files s3://testbucket-dradecic/backups/$TIMESTAMP --storage-class STANDARD_IA

छवि 19 - कस्टम स्टोरेज क्लास के साथ बैकअप सामग्री
यह S3 Infrequent Access स्टोरेज क्लास का उपयोग करता है, जिसकी लागत कम है लेकिन रिट्रीवल फ़ीस थोड़ी होती है। दीर्घकालिक आर्काइव के लिए, आप Glacier स्टोरेज क्लास का भी उपयोग कर सकते हैं:
aws s3 sync /Users/dradecic/Documents/important-data s3://testbucket-dradecic/backups/$TIMESTAMP --storage-class GLACIER
ध्यान रखें कि Glacier में संग्रहीत फ़ाइलों को पुनर्प्राप्त करने में घंटे लगते हैं, इसलिए वे ऐसे डेटा के लिए उपयुक्त नहीं हैं जिसे आपको जल्दी चाहिए।
S3 से फ़ाइलें रिस्टोर करना
बैकअप से रिस्टोर करना भी उतना ही आसान है — बस अपने sync कमांड में स्रोत और गंतव्य उलट दें:
# Restore from the most recent backup (assuming you know the timestamp)
aws s3 sync s3://testbucket-dradecic/backups/2025-03-10-18-56-42 /Users/dradecic/Documents/restored-data
यह उस विशिष्ट बैकअप से सभी फ़ाइलों को आपके लोकल restored-data डायरेक्टरी में डाउनलोड कर देगा:

छवि 20 - S3 से फ़ाइलें रिस्टोर करना
यदि आपको सटीक टाइमस्टैम्प याद नहीं, तो आप पहले अपने सभी बैकअप्स की सूची देख सकते हैं:
aws s3 ls s3://testbucket-dradecic/backups/
जो आपको कुछ इस तरह दिखाएगा:

छवि 21 - बैकअप्स की सूची
आप पहले बताए गए exclude/include फ़्लैग्स का उपयोग कर किसी बैकअप से विशिष्ट फ़ाइलें या डायरेक्टरी भी रिस्टोर कर सकते हैं:
# Restore only the config files
aws s3 sync s3://testbucket-dradecic/backups/2025-03-10-18-56-42 /Users/dradecic/Documents/restored-configs --exclude "*" --include "*.config" --include "*.toml" --include "*.yaml"
मिशन-क्रिटिकल सिस्टम्स के लिए, शेड्यूल्ड टास्क्स (Linux/macOS पर cron jobs या Windows पर Task Scheduler) के साथ अपने बैकअप्स को ऑटोमेट करें। इससे आप बिना याद रखे नियमित रूप से डेटा का बैकअप लेते रहेंगे।
AWS S3 Sync की समस्या निवारण
AWS S3 sync भरोसेमंद टूल है, लेकिन कभी-कभी आपको समस्याएं आ सकती हैं। फिर भी, ज्यादातर त्रुटियां उपयोगकर्ता-जनित होती हैं।
सामान्य सिंक त्रुटियां
आइए कुछ आम समस्याओं और उनके समाधान पर नज़र डालते हैं।
- Access denied त्रुटि आमतौर पर दर्शाती है कि आपके IAM यूज़र के पास S3 बकेट तक पहुंचने या विशेष ऑपरेशन्स करने की आवश्यक अनुमतियाँ नहीं हैं। इसे ठीक करने के लिए, निम्न में से किसी एक को आज़माएँ:
- जांचें कि आपके IAM यूज़र के पास उपयुक्त S3 अनुमतियाँ हैं (
s3:ListBucket,s3:GetObject,s3:PutObject). - सत्यापित करें कि बकेट पॉलिसी आपके यूज़र की एक्सेस को स्पष्ट रूप से अस्वीकार नहीं करती।
- सुनिश्चित करें कि यदि आपको पब्लिक ऑपरेशन्स की आवश्यकता है, तो बकेट स्वयं पब्लिक एक्सेस को ब्लॉक नहीं कर रहा।
- No such file or directory त्रुटि आमतौर पर तब आती है जब आपने sync कमांड में जो स्रोत पाथ दिया है, वह मौजूद नहीं है। समाधान सीधा है — अपने पाथ्स को दोबारा जांचें और सुनिश्चित करें कि वे मौजूद हैं। बकेट नामों या लोकल डायरेक्टरियों में टाइपो पर विशेष ध्यान दें।
- File size limit त्रुटियाँ तब हो सकती हैं जब आप बड़ी फ़ाइलें सिंक करना चाहते हैं। डिफ़ॉल्ट रूप से, S3 sync 5GB तक की फ़ाइलों को संभाल सकता है। इससे बड़ी फ़ाइलों के लिए आपको टाइमआउट्स या अधूरी ट्रांसफ़र दिख सकते हैं।
- 5GB से बड़ी फ़ाइलों के लिए, आपको
--only-show-errorsफ़्लैग को--size-onlyफ़्लैग के साथ उपयोग करना चाहिए। यह संयोजन बड़े फ़ाइल ट्रांसफ़र्स में आउटपुट को कम करके और केवल फ़ाइल आकार की तुलना करके मदद करता है:
aws s3 sync /Users/dradecic/large-files s3://testbucket-dradecic/large-files --only-show-errors --size-only
सिंक प्रदर्शन का अनुकूलन
यदि आपका S3 sync अपेक्षा से धीमा चल रहा है, तो कुछ बदलाव करके आप इसे तेज कर सकते हैं।
- समानांतर ट्रांसफ़र्स का उपयोग करें। डिफ़ॉल्ट रूप से, S3 sync सीमित संख्या में समानांतर ऑपरेशन्स का उपयोग करता है। आप
--max-concurrent-requestsपैरामीटर के साथ इसे बढ़ा सकते हैं:
aws s3 sync /Users/dradecic/Documents/code-files s3://testbucket-dradecic/backup --max-concurrent-requests 20
- चंक आकार समायोजित करें। बड़ी फ़ाइलों के लिए, चंक आकार समायोजित कर आप ट्रांसफ़र स्पीड को अनुकूलित कर सकते हैं। यह बड़ी फ़ाइलों को डिफ़ॉल्ट 8MB के बजाय 16MB चंक्स में तोड़ता है, जो अच्छी नेटवर्क कनेक्शन पर तेज हो सकता है:
aws s3 sync /Users/dradecic/large-files s3://testbucket-dradecic/backup --cli-read-timeout 120 --multipart-threshold 64MB --multipart-chunksize 16MB
- स्क्रिप्ट्स के लिए
--no-progressका उपयोग करें। यदि आप S3 sync को किसी ऑटोमेटेड स्क्रिप्ट में चला रहे हैं, तो आउटपुट कम करने और प्रदर्शन सुधारने के लिए--no-progressफ़्लैग का उपयोग करें:
aws s3 sync /Users/dradecic/Documents/code-files s3://testbucket-dradecic/backup --no-progress
- स्थानीय एंडपॉइंट्स का उपयोग करें। यदि आपके AWS संसाधन एक ही रीजन में हैं, तो रीजनल एंडपॉइंट निर्दिष्ट करने से विलंबता कम हो सकती है:
aws s3 sync /Users/dradecic/Documents/code-files s3://testbucket-dradecic/backup --endpoint-url https://s3.eu-central-1.amazonaws.com
ये अनुकूलन सिंक प्रदर्शन में उल्लेखनीय सुधार ला सकते हैं, खासकर बड़े डेटा ट्रांसफ़र्स के लिए या कम शक्तिशाली मशीनों पर चलाते समय।
यदि इन समाधानों के बाद भी समस्याएं आ रही हैं, तो AWS CLI में एक बिल्ट-इन डीबगिंग विकल्प है। सिंक प्रक्रिया के दौरान क्या हो रहा है इसकी विस्तृत जानकारी देखने के लिए अपनी कमांड में --debug जोड़ें:
aws s3 sync /Users/dradecic/Documents/code-files s3://testbucket-dradecic/backup --debug
काफी विस्तृत लॉग संदेश देखने की उम्मीद करें, कुछ इस तरह:

छवि 22 - डीबग मोड में sync चलाना
और AWS S3 sync की समस्या निवारण यहीं तक है। हाँ, अन्य त्रुटियाँ भी हो सकती हैं, लेकिन 99% मामलों में, समाधान आपको इसी सेक्शन में मिल जाएगा।
AWS S3 Sync का सार
संक्षेप में, AWS S3 sync उन दुर्लभ टूल्स में से एक है जो उपयोग में सरल और अविश्वसनीय रूप से शक्तिशाली हैं। आपने बेसिक कमांड्स से लेकर उन्नत विकल्पों, बैकअप रणनीतियों, और समस्या निवारण सुझावों तक सब कुछ सीखा।
डेवलपर्स, सिस्टम प्रशासकों, या AWS के साथ काम करने वाले किसी भी व्यक्ति के लिए, S3 sync कमांड एक आवश्यक टूल है — यह समय बचाता है, बैंडविड्थ उपयोग कम करता है, और सुनिश्चित करता है कि आपकी फ़ाइलें जहां और जब चाहिए, वहीं हों।
चाहे आप महत्वपूर्ण डेटा का बैकअप ले रहे हों, वेब एसेट्स डिप्लॉय कर रहे हों, या बस अलग-अलग वातावरणों को सिंक में रख रहे हों, AWS S3 sync इस प्रक्रिया को सीधा और भरोसेमंद बनाता है।
S3 sync के साथ सहज होने का सबसे अच्छा तरीका है इसका उपयोग शुरू करना। अपनी फ़ाइलों के साथ एक साधारण सिंक ऑपरेशन सेट करें, फिर धीरे-धीरे अपनी विशिष्ट जरूरतों के अनुसार उन्नत विकल्पों का अन्वेषण करें।
ध्यान रखें कि महत्वपूर्ण डेटा के साथ काम करते समय, खासकर --delete फ़्लैग का उपयोग करते हुए, पहले हमेशा --dryrun का उपयोग करें। एक अतिरिक्त मिनट लगाकर यह सत्यापित कर लेना बेहतर है कि क्या होने वाला है, बजाय इसके कि गलती से महत्वपूर्ण फ़ाइलें हटा दें।
AWS के बारे में और जानने के लिएt ये DataCamp पाठ्यक्रम देखें:
- Introduction to AWS
- AWS Cloud Technology and Services
- AWS Security and Cost Management
- Introduction to AWS Boto in Python
आप AWS सर्टिफिकेशन एग्जाम की तैयारी के लिए DataCamp का उपयोग भी कर सकते हैं - AWS Cloud Practitioner (CLF-C02).
FAQs
AWS S3 sync क्या है और यह कैसे काम करता है?
AWS S3 sync AWS CLI के साथ आने वाला एक कमांड-लाइन टूल है, जिसे स्थानीय सिस्टम और Amazon S3 बकेट्स के बीच फ़ाइलों को समकालित करने के लिए डिज़ाइन किया गया है। यह स्रोत और गंतव्य में फ़ाइलों की तुलना करके, अंतर पहचान कर, और फिर केवल आवश्यक सामग्री ट्रांसफ़र करके उन्हें मेल कराता है — जिससे पूर्ण अपलोड या डाउनलोड की तुलना में बैंडविड्थ और समय की बचत होती है।
क्या मैं S3 बकेट पर और उससे, दोनों तरह से फ़ाइलें सिंक कर सकता/सकती हूँ?
हाँ, AWS S3 sync दोनों दिशाओं में काम करता है। आप लोकल फ़ाइलों को S3 बकेट पर aws s3 sync /local/directory s3://my-bucket/path से सिंक कर सकते हैं या S3 बकेट से अपनी लोकल सिस्टम पर aws s3 sync s3://my-bucket/path /local/directory से फ़ाइलें सिंक कर सकते हैं। कमांड हमेशा गंतव्य को स्रोत जैसा बना देता है।
क्या AWS S3 sync फ़ाइलों को अपने-आप डिलीट करता है?
डिफ़ॉल्ट रूप से, S3 sync स्रोत में मौजूद नहीं रहने वाली फ़ाइलों को गंतव्य से डिलीट नहीं करता। हालांकि, आप अपने sync कमांड में --delete फ़्लैग जोड़कर गंतव्य को हटाव सहित बिल्कुल स्रोत जैसा बना सकते हैं। इसे सावधानी से उपयोग करें और पहले --dryrun से परीक्षण करने पर विचार करें।
बड़ी फ़ाइलों के लिए मैं AWS S3 sync को कैसे अनुकूलित करूं?
बड़ी फ़ाइलों के लिए आप कई पैरामीटर्स से S3 sync का प्रदर्शन अनुकूलित कर सकते हैं, जैसे समानांतर ट्रांसफ़र्स बढ़ाने के लिए --max-concurrent-requests, चंक आकार समायोजित करने के लिए --multipart-chunksize, और टाइमआउट से बचने के लिए --cli-read-timeout। 5GB से बड़ी फ़ाइलों के लिए, बेहतर प्रदर्शन हेतु --only-show-errors और --size-only फ़्लैग्स को मिलाकर उपयोग करें।
क्या मैं AWS S3 sync से बैकअप्स को ऑटोमेट कर सकता/सकती हूँ?
हाँ, AWS S3 sync स्वचालित बैकअप बनाने के लिए उपयुक्त है। आप शेड्यूल्ड टास्क्स (Linux/macOS पर cron jobs या Windows पर Task Scheduler) सेट कर सकते हैं ताकि टाइमस्टैम्प वाले डेस्टिनेशन पाथ के साथ sync कमांड नियमित रूप से चलें। दीर्घकालिक, किफायती स्टोरेज के लिए --storage-class पैरामीटर से STANDARD_IA या GLACIER जैसे स्टोरेज क्लास निर्दिष्ट करें।

स्थानीय सिस्टम और क्लाउड स्टोरेज के बीच फ़ाइल समकालिकरण प्रबंधित करना सिरदर्द नहीं होना चाहिए।
AWS S3 एक सुविधाजनक कमांड-लाइन टूल प्रदान करता है जो आपके स्थानीय वातावरण और Amazon के Simple Storage Service बकेट (S3) के बीच फ़ाइलों को सिंक में रखने की प्रक्रिया को सरल बनाता है। यह टूल विशेष रूप से डेवलपर्स, सिस्टम प्रशासकों, और उन सभी के लिए मूल्यवान है जिन्हें कई स्थानों पर एकसमान फ़ाइल संस्करण बनाए रखने होते हैं। बस कुछ कमांड्स से, आप फ़ाइलों को कुशलतापूर्वक ट्रांसफर कर सकते हैं, बैकअप बना सकते हैं, और डिजास्टर रिकवरी समाधान लागू कर सकते हैं।
AWS Command Line Interface (CLI) इन कार्यों को व्यापक उपयोगकर्ताओं के लिए सुलभ बनाती है। मानें, यह Google Drive या OneDrive जितना सुविधाजनक नहीं है, लेकिन इसके पास कुछ खास तरकीबें हैं।
इस ट्यूटोरियल में, मैं AWS S3 sync के बारे में मूल सेटअप से लेकर उन्नत उपयोग पैटर्न तक सब कुछ कवर करूंगा।
>आखिर S3 है क्या? हमारे S3 गाइड के साथ बुनियादी बातें सीखें.
AWS S3 Sync क्या है?
AWS S3 sync एक शक्तिशाली कमांड-लाइन टूल है जो AWS CLI टूलकिट के साथ आता है। यह आपके स्थानीय फ़ाइल सिस्टम और किसी S3 बकेट के बीच फ़ाइलों को कुछ ही समय में समकालित करने के लिए डिज़ाइन किया गया है।
S3 sync को क्लाउड के लिए rsync समझें। यह कमांड स्रोत और गंतव्य दोनों स्थानों का विश्लेषण करता है, अंतर पहचानता है, और फिर केवल उतना ही ट्रांसफर करता है जितनी उन्हें मेल कराने के लिए आवश्यकता होती है। यह तरीका साधारण फ़ाइल ट्रांसफर विधियों की तुलना में बैंडविड्थ, समय, और संभावित लागत बचाता है।
आंतरिक रूप से, S3 sync फ़ाइल आकार और संशोधन टाइमस्टैम्प जैसे ऑब्जेक्ट मेटाडेटा की तुलना करने के लिए API कॉल करता है। जब यह अंतर का पता लगाता है, तो यह उसी अनुसार फ़ाइलों को अपलोड या डाउनलोड करने का भारी काम संभालता है।
S3 sync की खूबसूरती इसकी सरलता में है। एक बेसिक कमांड कुछ इस तरह दिखती है:
बेशक, आपको
awsकमांड्स का उपयोग करने के लिए CLI सेटअप करना होगा, लेकिन बात समझ में आ गई होगी — इसका इस्तेमाल करना बेहद आसान है।संक्षेप में, S3 sync परदे के पीछे होने वाले जटिल ऑपरेशनों को छिपा देता है और आपको विभिन्न वातावरणों में एकसमान फ़ाइल स्टेट्स बनाए रखने का आसान तरीका देता है। चाहे आप महत्वपूर्ण डेटा का बैकअप ले रहे हों, वेब एसेट्स को डिप्लॉय कर रहे हों, या बड़े डेटासेट प्रबंधित कर रहे हों — S3 sync आपके लिए सारा भारी काम कर देता है।