2012-07-21 11 views
7

ओवरराइट न करें मैं Google क्लाउड स्टोरेज में एक बाल्टी में स्थानीय निर्देशिका सिंक करना चाहता हूं। मैं उन स्थानीय फ़ाइलों की प्रतिलिपि बनाना चाहता हूं जो दूरस्थ रूप से मौजूद नहीं हैं, उन फ़ाइलों को छोड़ना जो पहले से ही दूरस्थ और स्थानीय दोनों मौजूद हैं। क्या यह GSUtil के साथ ऐसा करना संभव है? मुझे GSUtil या "ओवरराइट न करें" के लिए "सिंक" विकल्प नहीं मिल रहा है। क्या यह स्क्रिप्ट करना संभव है?Google क्लाउड स्टोरेज - GSUtil - फ़ाइलों को कॉपी करें, मौजूदा छोड़ें,

मैं लिनक्स (उबंटू 12.04) पर हूं?

उत्तर

9

gsutil अब cp कमांड पर noclobber flag (-n) का समर्थन करता है। अपने gsutil को नवीनतम संस्करण में अपडेट करें (gsutil अद्यतन का उपयोग करके) और फिर प्रतिलिपि करते समय -n ध्वज का उपयोग करें।

यह ध्वज उन फ़ाइलों को छोड़ देगा जो पहले से ही गंतव्य पर मौजूद हैं।

+6

अद्यतन: gsutil अब (मई 2014) rsync विकल्प का समर्थन करता है। –

1

gsutil सिंक ऑपरेशन का समर्थन नहीं करता है, लेकिन आप दूरस्थ रूप से मौजूद फ़ाइलों को ढूंढने के लिए gsutil ls का उपयोग करके इसे स्क्रिप्ट कर सकते हैं।

+0

कोई विचार यह कैसे स्क्रिप्ट करना है? – ECII

4

आप (-n) आदेश, Google Cloud Platform पर आधिकारिक तौर पर उल्लेख किया जोड़ने की जरूरत:

-n: नहीं-पीटना। निर्दिष्ट होने पर, गंतव्य पर मौजूदा फ़ाइलें या ऑब्जेक्ट्स ओवरराइट नहीं किए जाएंगे। इस विकल्प द्वारा छोड़े गए किसी भी आइटम को छोड़ा जा रहा है। यह विकल्प डेटा अपलोड करने का प्रयास करने से पहले कोई आइटम मौजूद है या नहीं, यह जांचने के लिए एक अतिरिक्त GET अनुरोध करेगा। यह रीट्रांसमिटिंग डेटा को सहेज लेगा, लेकिन अतिरिक्त HTTP अनुरोध छोटे ऑब्जेक्ट ट्रांसफर को धीमे और अधिक महंगी बना सकते हैं।

उदाहरण (का उपयोग करते हुए बहु सूत्रण):

gsutil -m cp -n -a public-read -R large_folder gs://bucket_name 
1

rsync उपयोग करके, आप लापता प्रतिलिपि बना सकते हैं/संशोधित फ़ाइलों/वस्तुओं:

gsutil -m rsync -r <local_folderpath> gs://<bucket_id>/<cloud_folderpath> 

इसके अलावा, अगर आप -d विकल्प का उपयोग, तो आप करेंगे अपनी बाल्टी में फ़ाइलों/ऑब्जेक्ट्स को भी हटाएं जो स्थानीय रूप से मौजूद नहीं हैं।

एक और विकल्प Object Versioning का उपयोग करने के लिए किया जा सकता है, इसलिए आप अपने बाल्टी में फ़ाइलों/वस्तुओं को अपने स्थानीय डेटा के साथ प्रतिस्थापित करेंगे, लेकिन आप हमेशा पिछले संस्करण पर वापस जा सकते हैं।

संबंधित मुद्दे