2016-08-23 17 views
5

मुझे एस 3 बाल्टी में एक बड़ी फ़ाइल अपलोड करने की आवश्यकता है। प्रत्येक 10 मिनट में मेरा कोड स्रोत निर्देशिका से पुरानी फ़ाइल हटा देता है और एक नई फ़ाइल उत्पन्न करता है। फ़ाइल का आकार लगभग 500 एमबी है। अब मैंने सृजन के बाद प्रत्येक फ़ाइल को अपलोड करने के लिए s3.putObject() विधि का उपयोग किया था। मैंने aws s3 सिंक के बारे में भी सुना। यह aws-cli के साथ आ रहा है। यह s3 बाल्टी में फ़ाइलों को अपलोड करने के लिए प्रयोग किया जाता है।aws s3 putObject बनाम सिंक

मैंने एस 3 अपलोड के लिए node.js के लिए aws-sdk का उपयोग किया। node.js के लिए aws-sdk में s3-sync विधि नहीं है। एस 3-सिंक s3.putObject() विधि से बेहतर है? मुझे तेज़ अपलोड की ज़रूरत है।

उत्तर

1

वहाँ तो एक S3 बाल्टी आप कर सकते हैं में एक फ़ाइल अपलोड करने के लिए, बात पर बनाने के लिए हमेशा ही इस से भी अधिक है:

  • उपयोग एडब्ल्यूएस CLI और aws s3 cp ...
  • उपयोग एडब्ल्यूएस CLI चलाने के लिए और चलाने के aws s3api put-object ...
  • एडब्ल्यूएस एसडीके (अपनी पसंद के भाषा)

आप भी sync विधि का उपयोग कर सकते हैं का उपयोग करें, लेकिन एक एकल फाइल के लिए, gener कोई एक पूरी निर्देशिका सिंक करने के लिए की जरूरत है, और वहाँ है सहयोगी जब बेहतर प्रदर्शन की तलाश में बहु थ्रेड बनाम सिंक मोनो-थ्रेड से लाभ प्राप्त करने के लिए एकाधिक cp उदाहरण शुरू करना बेहतर होता है।

मूल रूप से यह सभी विधियां एसएसआई एपीआई कॉल के लिए रैपर हैं। amazon doc

सीधे आपके कोड से आरईएसटी एपीआई कॉल बनाना बोझिल हो सकता है। यह आपके अनुरोधों को प्रमाणीकृत करने के लिए एक वैध हस्ताक्षर की गणना करने के लिए आवश्यक कोड लिखने की आवश्यकता है। हम इसके बजाय निम्न विकल्पों की अनुशंसा करते हैं:

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

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

हालांकि प्रदर्शन की अवधि में, एक या दूसरे का उपयोग करने से अंतर नहीं आएगा, वे फिर से एडब्ल्यूएस एपीआई कॉल के लिए रैपर हैं। स्थानांतरण अनुकूलन के लिए, आपको aws s3 transfer acceleration पर देखना चाहिए और देखें कि क्या आप इसे

+0

पर सक्षम कर सकते हैं, मैंने aws-lambda पर अपना कोड तैनात किया है। sdk या aws-cli कमांड lambda के लिए बेहतर है? –

+0

यदि आपका कोड लैम्ब्डा पर चलता है, तो नोड जेएस एसडीके एक वैध अच्छा विकल्प –

+0

धन्यवाद संघीय है। –

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