मैं वर्तमान में Amazon S3 के लिए बहुत बड़ी फ़ाइलों को स्ट्रीम करने के लिए s3-upload-stream नामक एक नोड .js प्लगइन का उपयोग कर रहा हूं । यह मल्टीपार्ट API का उपयोग करता है और अधिकांश भाग के लिए यह बहुत अच्छी तरह से काम करता है।
हालाँकि, यह मॉड्यूल अपनी उम्र दिखा रहा है और मुझे पहले से ही इसमें संशोधन करना पड़ा है (लेखक ने इसे भी चित्रित किया है)। आज मैं अमेज़ॅन के साथ एक और मुद्दे में भाग गया, और मैं वास्तव में लेखक की सिफारिश लेना चाहूंगा और अपने अपलोड को पूरा करने के लिए आधिकारिक aws-sdk का उपयोग करना शुरू करूंगा।
परंतु।
आधिकारिक SDK पाइपिंग का समर्थन नहीं करता है s3.upload()
। S3.upload की प्रकृति यह है कि आपको S3 कंस्ट्रक्टर के तर्क के रूप में पठनीय स्ट्रीम को पास करना होगा।
मेरे पास लगभग 120+ उपयोगकर्ता कोड मॉड्यूल हैं जो विभिन्न फ़ाइल प्रसंस्करण करते हैं, और वे अपने आउटपुट के अंतिम गंतव्य के लिए अज्ञेय हैं। इंजन उन्हें एक पाइप करने योग्य लेखन योग्य उत्पादन स्ट्रीम सौंपता है, और वे इसे पाइप करते हैं। मैं उन्हें एक AWS.S3
वस्तु नहीं सौंप सकता और उन्हें upload()
सभी मॉड्यूल के कोड को जोड़े बिना उस पर कॉल करने के लिए कह सकता हूं । मैंने इसका उपयोग किया s3-upload-stream
था क्योंकि यह पाइपिंग का समर्थन करता था।
वहाँ एक रास्ता बनाने के लिए है aws-sdk s3.upload()
कुछ मैं स्ट्रीम करने के लिए पाइप कर सकते हैं?