मैं अपने नोड सर्वर पर pdfkit (https://github.com/devongovett/pdfkit) का उपयोग कर रहा है, आमतौर पर पीडीएफ फाइलों को सृजित करने, और फिर उन्हें S3 पर अपलोड करने के लिए पाइपिंग pdfkit। समस्या यह है कि पीडीएफकिट उदाहरण पीडीएफ दस्तावेज़ को नोड लिखने वाली धारा में पाइप करते हैं, जो डिस्क को फ़ाइल लिखता है, मैंने उदाहरण का पालन किया और सही तरीके से काम किया, हालांकि मेरी आवश्यकता अब पीडीएफ दस्तावेज़ को स्मृति स्ट्रीम में पाइप करने के बजाय पाइप करने के लिए है यह डिस्क पर (मैं वैसे भी s3 पर अपलोड कर रहा हूँ)। मैंने कुछ नोड मेमोरी स्ट्रीम प्रक्रियाओं का पालन किया है, लेकिन उनमें से कोई भी मेरे साथ पीडीएफ पाइप के साथ काम नहीं कर रहा है, मैं सिर्फ मेमोरी स्ट्रीम में स्ट्रिंग लिख सकता हूं। तो मेरा सवाल है: पीडीएफ किट आउटपुट को मेमोरी स्ट्रीम (या कुछ समान) में कैसे पाइप करें और फिर इसे एस 3 पर अपलोड करने के लिए ऑब्जेक्ट के रूप में पढ़ें?नोड जे एस, एक स्मृति धारा
var fsStream = fs.createWriteStream(outputPath + fileName);
doc.pipe(fsStream);
अग्रिम धन्यवाद।
मैंने यह कोशिश की, लेकिन मुझे लगता है कि पाइप समाप्त करने या 'अनुरोध' के उपयोग को समाप्त करने का अनुभव नहीं है, इसलिए मुझे यह त्रुटि हुई: '[grunt-develop]> events.js: 141 फेंकने वाला एर ; // बिना क्रिया 'त्रुटि' घटना ^ त्रुटि: exports._errnoException पर ECONNRESET पढ़ें (util.js: 856: 11) TLSWrap.onread पर (net.js: 544: 26) >> आवेदन कोड के साथ बाहर निकल गया 1' –
जब एक पठनीय धारा (यहां, 'doc') समाप्त होता है, तो यह स्वचालित रूप से लिखने योग्य धारा को बताएगा (इसे अपलोड करें) जो इसे समाप्त हो गया है। यदि आप जानना चाहते हैं कि लिखने योग्य (अपलोड) कब किया जाता है, तो ['finish' event] (https://nodejs.org/api/stream.html#stream_event_finish) को सुनें। – josh3736
और वह स्टैक ट्रेस इंगित करता है कि आप डिस्कनेक्ट होने वाली किसी चीज़ पर 'त्रुटि' घटनाओं को नहीं सुन रहे हैं। 'त्रुटि' श्रोताओं को जोड़ें ताकि आप यह निर्धारित कर सकें कि डिस्कनेक्ट हो रहा है। यदि यह आपका 'अपलोड' अनुरोध है, तो यह काफी अजीब है। – josh3736