2014-04-08 10 views
6

मैं डिस्क से Google क्लाउड स्टोरेज में डेटा अपलोड करने की कोशिश कर रहा हूं जिसमें ~ 3000 फाइलों के साथ ~ 3000 फाइलें हैं। मैं gsutil cp -R <disk-top-directory> <bucket> का उपयोग कर रहा हूँ। मेरी समझ यह है कि, यदि gsutil फिर से शुरू/पुनरारंभ किया गया है, तो यह निर्धारित करने के लिए चेकसम का उपयोग करता है कि फ़ाइल कब पहले से अपलोड हो चुकी है और उस पर छोड़ दी गई है।फिर से शुरू करें gsutil फ़ाइलों को फिर से अपलोड करने के लिए प्रतीत होता है

ऐसा प्रतीत नहीं होता है: ऐसा लगता है कि यह शीर्ष से अपलोड को फिर से शुरू कर रहा है और फ़ाइलों को फिर से बदल रहा है। जब मैं gsutil ls -Rl <bucket/disk-top-directory> को दस मिनट अलग करता हूं और diff के साथ तुलना करता हूं, तो मुझे लगता है कि एक ही आकार के साथ एक ही फाइलें दिखाई देती हैं लेकिन एक बदली (नई) तिथि होती है। (एक ही फाइल के साथ अर्थात लगातार फिर से अपलोड किया जा रहा।)

उदाहरण के लिए:

< 404104811 2014-04-08T14:13:44Z gs://my-bucket/disk-top-directory/dir1/dir2/dir3/dir4/dir5/file-20.tsv.bz2 
--- 
> 404104811 2014-04-08T14:43:48Z gs://my-bucket/disk-top-directory/dir1/dir2/dir3/dir4/dir5/file-20.tsv.bz2 

मशीन मैं डिस्क पढ़ सकते हैं और फ़ाइलों को हस्तांतरण करने का उपयोग कर रहा उबंटू 13.10 चल रहा है। मैंने डेबियन और उबंटू के लिए पाइप निर्देशों का उपयोग करके gsutil स्थापित किया।

क्या मैं गलत समझ रहा हूं कि gsutil के पुन: प्रारंभ करने योग्य स्थानान्तरण कैसे काम करते हैं? यदि नहीं, सही निदान व्यवहार प्राप्त करने के लिए कोई निदान और ठीक है? अग्रिम में धन्यवाद!

उत्तर

5

आपको गंतव्य पर पहले से मौजूद वस्तुओं की पुन: अपलोड करने से रोकने के लिए -n (No-clobber) स्विच का उपयोग करने की आवश्यकता है।

gsutil cp -Rn <disk-top-directory> <bucket> 

मदद (gsutil मदद सीपी) से

-n   No-clobber. When specified, existing files or objects at the 
       destination will not be overwritten. Any items that are skipped 
       by this option will be reported as being skipped. This option 
       will perform an additional HEAD request to check if an item 
       exists before attempting to upload the data. This will save 
       retransmitting data, but the additional HTTP requests may make 
       small object transfers slower and more expensive. 

इसके अलावा according to this, जब 2 एमबी से अधिक फ़ाइलों को स्थानांतरित करने, gsutil स्वचालित रूप से एक पुन: प्रारंभ योग्य स्थानांतरण मोड का उपयोग करता है।

+0

धन्यवाद! यह मेरी समस्या तय है। ये फ़ाइलें 2 एमबी से अधिक थीं, इसलिए फिर से शुरू करने योग्य स्थानांतरण मोड ऐसा नहीं था जिसे मैंने सोचा था, या कुछ गलत हो गया था, या जीएसयूटीएल का मेरा संस्करण ऑनलाइन दस्तावेज के साथ पुराना/सिंक था (शायद क्योंकि मैंने पीआईपी का उपयोग किया था) । समाधान करने में खुशी हुई! – MPBall

0

यदि आप (अभी भी बीटा) gsutil v4 के साथ काम करने के लिए खुले हैं, तो gsutil के उस संस्करण में rsync कमांड है।

gsutil अद्यतन gs:: आप चलाकर इस प्राप्त कर सकते हैं //prerelease/gsutil_4.0beta2pre_minus_m_sugg.tar.gz

कृपया इस प्रमुख नई रिलीज करने के लिए स्विच करने से पहले रिलीज नोट्स पढ़ लें, खासकर यदि आप ' स्क्रिप्ट में gsutil v3 का उपयोग कर रहे हैं।

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