"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > Go का उपयोग करके AWS S3 पर फ़ाइल अपलोड कैसे स्ट्रीम करें?

Go का उपयोग करके AWS S3 पर फ़ाइल अपलोड कैसे स्ट्रीम करें?

2024-11-10 को प्रकाशित
ब्राउज़ करें:131

How to Stream File Uploads to AWS S3 Using Go?

गो का उपयोग करके AWS S3 पर फ़ाइल अपलोड स्ट्रीम करें

अवलोकन

मेमोरी और डिस्क फ़ुटप्रिंट को कम करते हुए बड़ी फ़ाइलों को सीधे AWS S3 पर अपलोड करना एक आवश्यक कार्य है क्लाउड कंप्यूटिंग में. यह मार्गदर्शिका प्रदर्शित करेगी कि Go के लिए AWS SDK का उपयोग करके इसे कैसे प्राप्त किया जाए।

Solution

किसी फ़ाइल अपलोड को सीधे S3 पर स्ट्रीम करने के लिए, आप s3manager पैकेज का उपयोग कर सकते हैं। यहां चरण-दर-चरण समाधान दिया गया है:

  1. AWS क्रेडेंशियल और सत्र कॉन्फ़िगर करें:

    • अपनी AWS एक्सेस कुंजी और गुप्त सेट करें, या डिफ़ॉल्ट क्रेडेंशियल प्रदाता का उपयोग करें। ]
    • सत्र और वैकल्पिक कॉन्फ़िगरेशन सेटिंग्स के साथ एक S3 अपलोडर प्रारंभ करें।
    आप भाग आकार, समवर्ती और अधिकतम अपलोड भागों जैसे पैरामीटर कॉन्फ़िगर कर सकते हैं।
  2. फ़ाइल खोलें:
    • वह फ़ाइल खोलें जिसे आप os.Open फ़ंक्शन का उपयोग करके अपलोड करना चाहते हैं।
  3. फ़ाइल अपलोड करें:

    • उचित फ़ाइल जानकारी (बाल्टी, कुंजी और फ़ाइल सूचक) के साथ अपलोडर.अपलोड विधि का उपयोग करें।
  4. उदाहरण कोडनिम्नलिखित कोड नमूना दर्शाता है कि s3manager का उपयोग करके AWS S3 पर बड़ी फ़ाइल अपलोड को कैसे स्ट्रीम किया जाए:

      पैकेज मुख्य आयात ( "एफएमटी" "ओएस" "github.com/aws/aws-sdk-go/aws/credentials" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/service/s3/s3manager" ) स्थिरांक ( फ़ाइल नाम = "file_name.zip" मायबकेट = "मायबकेट" myKey = "file_name.zip" एक्सेसकी = "" एक्सेससीक्रेट = "" ) func मुख्य() { var awsConfig *aws.Config यदि एक्सेसकी == "" || एक्सेससीक्रेट == "" { //डिफ़ॉल्ट क्रेडेंशियल लोड करें awsConfig = &aws.Config{ क्षेत्र: aws.String("us-west-2"), } } अन्य { awsConfig = &aws.Config{ क्षेत्र: aws.String("us-west-2"), क्रेडेंशियल्स: क्रेडेंशियल्स.न्यूस्टैटिक क्रेडेंशियल्स (एक्सेसकी, एक्सेससीक्रेट, ""), } } // S3 अपलोडर जिस सत्र का उपयोग करेगा sess := session.Must(session.NewSession(awsConfig)) // सत्र और डिफ़ॉल्ट विकल्पों के साथ एक अपलोडर बनाएं //अपलोडर := s3manager.NewUploader(sess) // सत्र और कस्टम विकल्पों के साथ एक अपलोडर बनाएं अपलोडर := s3manager.NewUploader(sess, func(u *s3manager.Uploader) { यू.पार्टसाइज = 5 * 1024 * 1024 // न्यूनतम/डिफ़ॉल्ट अनुमत पार्ट साइज 5एमबी है u.Concurrency = 2 // डिफ़ॉल्ट 5 है }) //फ़ाइल खोलें f, err := os.Open(फ़ाइल नाम) यदि त्रुटि !=शून्य { fmt.Printf ("फ़ाइल %q, %v खोलने में विफल", फ़ाइल नाम, त्रुटि) वापस करना } //स्थगित करें f.बंद करें() // फ़ाइल को S3 पर अपलोड करें। परिणाम, त्रुटि := uploader.Upload(&s3manager.UploadInput{ बाल्टी: aws.String(myBucket), कुंजी: aws.String(myKey), शरीर: एफ, }) //यदि यह अपलोड करने में विफल रहता है यदि त्रुटि !=शून्य { fmt.Printf('फ़ाइल अपलोड करने में विफल, %v', त्रुटि) वापस करना } fmt.Printf(''फ़ाइल अपलोड की गई, %s\n'', परिणाम.स्थान) }
    • इन चरणों का पालन करके, आप न्यूनतम मेमोरी उपयोग के साथ बड़ी मल्टीपार्ट/फॉर्म-डेटा फ़ाइलों को सीधे AWS S3 पर अपलोड कर सकते हैं।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3