AWS S3 में इमेज डेटा स्टोरेज और Roboflow पर अपलोडिंग से निपटते समय, सामान्यतः आपके पास दो विकल्प होते हैं: साइन किए गए URL का उपयोग करना या इमेज को मैन्युअली लोकली डाउनलोड करना (AWS CLI के माध्यम से) और फिर लोकली अपलोड करना। इन विधियों में से चुनाव आपके डेटा प्रोसेसिंग और प्रबंधन की विशिष्ट आवश्यकताओं पर निर्भर करता है।
Signed URLs: यह विधि विशेष रूप से फायदेमंद है यदि आप इमेज को अपने लोकल मशीन पर डाउनलोड करने से जुड़ा अतिरिक्त कदम और समय बचाना चाहते हैं। साइन किए गए URL के साथ, आप S3 से सीधे Roboflow API में इमेज डेटा अपलोड कर सकते हैं बिना उसे लोकली स्टोर किए। इससे प्रोसेसिंग तेज़ होती है और आपके लोकल सिस्टम पर कम लोड आता है।
CLI Locally: कुछ परिदृश्यों में आप पहले इमेज को अपनी लोकल एनवायरनमेंट में डाउनलोड करना पसंद कर सकते हैं। उदाहरण के लिए, यदि आपको इमेजेस को प्रीप्रोसेस करना है या Roboflow पर अपलोड करने से पहले मैन्युअल रूप से चेक करना है, तो लोकल कॉपी होना लाभप्रद होगा।
सही विधि का चयन आपकी विशेष उपयोग-केस आवश्यकताओं पर निर्भर करेगा, जैसे डेटा ट्रांसफर की गति, प्रीप्रोसेसिंग की आवश्यकता, या इमेजेस का मैन्युअल निरीक्षण।
AWS CLI सेटअप
स्क्रिप्ट का उपयोग करने से पहले सुनिश्चित करें कि आपने आवश्यक प्रमाणीकरण क्रेडेंशियल के साथ AWS CLI सेटअप कर लिया है। इससे आप इच्छित S3 बकेट तक पहुँच और प्रबंधन कर पाएँगे।
एक बार जब आपने AWS CLI इंस्टॉल कर लिया, तो एक टर्मिनल या कमांड प्रॉम्प्ट खोलें।
निम्नलिखित कमांड चलाएँ:
awsconfigure
आपसे आपके AWS क्रेडेंशियल दर्ज करने के लिए पूछा जाएगा:
AWS Access Key ID [None]: YOUR_ACCESS_KEY
AWS Secret Access Key [None]: YOUR_SECRET_ACCESS_KEY
Default region name [None]: YOUR_PREFERRED_REGION (उदा., us-west-1)
Default output format [None]: json
Option 1: Upload Via Signed URL:
आप Python में boto3 का उपयोग करके S3 बकेट में अपनी इमेज के लिए साइन किए गए URLs जेनरेट कर सकते हैं।
ऊपर के कोड स्निपेट में, आपको अपने S3 बकेट का नाम, S3 बकेट में इमेज के लिए ऑब्जेक्ट नाम, और aws रीजन चाहिए। इमेज का साइन किया हुआ URL जेनरेट होकर रिटर्न किया जाता है।
इसके आधार पर, हम एक पूर्ण समाधान जेनरेट कर सकते हैं जो S3 बकेट में सभी उपलब्ध ऑब्जेक्ट्स को खींचे और फिर उन्हें API के माध्यम से Roboflow पर अपलोड करे। इस समाधान की रूपरेखा नीचे देखी जा सकती है:
विकल्प 2: AWS से डेटा लोकली डाउनलोड करना
AWS से डेटा अपलोड करने के लिए, पहले इंस्टॉल करें awscliकमान्ड लाइन टूल. यह टूल आपको कमांड लाइन पर आपके AWS अकाउंट के साथ इंटरैक्ट करने की अनुमति देता है। एक बार जब आपके पास कमांड लाइन टूल इंस्टॉल हो जाए, तो निम्नलिखित कमांड चलाएँ:
Replace mybucket अपने बकेट के नाम के साथ folder_path उस फोल्डर या फ़ाइल के नाम के साथ जिसे आप एक्सपोर्ट करना चाहते हैं। यह कमांड AWS से एक एसेट को आपके वर्तमान वर्किंग डायरेक्टरी में डाउनलोड कर देगा (.).