2013-01-24 41 views
13

पर फ़ाइल संपीड़ित करें मेरे पास S3 पर 17.7GB फ़ाइल है। यह एक हाइव क्वेरी के आउटपुट के रूप में उत्पन्न किया गया था, और यह संपीड़ित नहीं है।एस 3

मुझे पता है कि इसे संपीड़ित करके, यह लगभग 2.2GB (gzip) होगा। ट्रांसफर बाधा (250kb/s) होने पर जितनी जल्दी संभव हो सके मैं इस फ़ाइल को स्थानीय रूप से कैसे डाउनलोड कर सकता हूं।

मुझे S3 पर फ़ाइल को संपीड़ित करने के लिए कोई सीधा तरीका नहीं मिला है, या s3cmd, boto, या संबंधित टूल में स्थानांतरण पर संपीड़न सक्षम नहीं है।

+1

क्या आपके पास अपनी हाइव क्वेरी को पुन: स्थापित करके इस फ़ाइल को पुन: उत्पन्न करने की क्षमता है? यदि हां, तो मैं आपके हाइव क्वेरी के लिए आउटपुट संपीड़न को सक्षम करने की सलाह दूंगा। –

+0

@ चार्ल्समेनें: मैंने वास्तव में पहली बार ऐसा किया (मुझे लगता है)। हालांकि कथन में 'आदेश' था, और इससे आउटपुट प्रभावित हुआ। आम तौर पर मुझे प्रत्येक नक्शा नौकरी के लिए एक फाइल मिल जाएगी, लेकिन इसके बजाय मुझे कम से कम एक फ़ाइल मिली जो मुझे लगता है कि ऑर्डरिंग कहाँ की गई थी। –

+0

आपने अपनी क्वेरी में आउटपुट संपीड़न कैसे सक्षम किया? मुझे लगता है कि आप 'ऑर्डर बाय' या नहीं, इस पर ध्यान दिए बिना किसी भी हाइव क्वेरी के आउटपुट को संपीड़ित करने में सक्षम होना चाहिए। मुझे लगता है कि आप एक 'सम्मिलित ओवरराइट निर्देशिका' s3n: // ... ',' सही करके एस 3 पर लिख रहे हैं? –

उत्तर

15

एस 3 स्ट्रीम संपीड़न का समर्थन नहीं करता है और न ही अपलोड की गई फ़ाइल को दूरस्थ रूप से संपीड़ित करना संभव है।

यदि यह एक बार की प्रक्रिया है तो मैं इसे उसी क्षेत्र में ईसी 2 मशीन पर डाउनलोड करने का सुझाव देता हूं, इसे वहां संपीड़ित करता हूं, फिर अपने गंतव्य पर अपलोड करता हूं।

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html

आप इस अधिक बार

Serving gzipped CSS and JavaScript from Amazon CloudFront via S3

1

देर जवाब की जरूरत है, लेकिन मैंने पाया यह पूरी तरह से काम कर रहे हैं।

aws s3 sync s3://your-pics . 

for i in `find | grep -E "\.jpg$|\.jpg$"`; do gzip "$i" ; echo $i; done 

aws s3 sync . s3://your-pics --content-encoding gzip --dryrun 

इस मशीन (या EC2 उदाहरण) के लिए S3 बाल्टी में सभी फ़ाइलों, छवि फ़ाइलों को संपीड़ित डाउनलोड करने और उन्हें वापस S3 बाल्टी के लिए अपलोड कर देगा। dryrun ध्वज हटाने से पहले डेटा सत्यापित करें।