पर जावा आउटपुटस्ट्रीम अपलोड करने के लिए कैसे मैं OutputStream
एस के रूप में स्मृति में पीडीएफ दस्तावेज़ बनाते हैं। इन्हें एस 3 पर अपलोड किया जाना चाहिए। मेरी समस्या यह है कि PutObjectRequest
को OutputStream
से सीधे बनाना संभव नहीं है (this thread in the AWS dev forum के अनुसार)। मैं aws-java-sdk-s3
v1.10.8 का उपयोग Dropwizard ऐप में करता हूं।एडब्ल्यूएस एस 3
दो तरीके दिए मैं अब तक देख सकते हैं कर रहे हैं:
- कॉपी
OutputStream
एकInputStream
करने और स्वीकार करते हैं कि दो बार RAM की मात्रा प्रयोग किया जाता है। - पाइप एक
InputStream
करने के लिएOutputStream
और एक अतिरिक्त धागे की भूमि के ऊपर स्वीकार करते हैं (this answer देख)
मैं मैं # 1 के साथ जाना होगा एक बेहतर समाधान नहीं मिल रहा है, तो है क्योंकि यह लग रहा है के रूप में अगर मैं मेरे सेटअप में थ्रेड/सीपीयू की तुलना में अतिरिक्त मेमोरी को अधिक आसानी से बर्दाश्त कर सकता है।
क्या कोई और संभवतः अधिक कुशल तरीका है जिसे मैंने अभी तक अनदेखा किया है?
संपादित करें: मेरे OutputStream
रों हैं ByteArrayOutputStream
रों
"मैं OutputStreams के रूप में स्मृति में पीडीएफ दस्तावेज़ भी बना" - ?? एक 'आउटपुटस्ट्रीम' डेटा स्टोर नहीं करता है (संभवतः 'बाइटएरे ऑटपुटस्ट्रीम' को छोड़कर, लेकिन फिर आप कहेंगे कि आपने इसे * बाइट सरणी * के रूप में स्मृति में बनाया है) – immibis
मैं बाइटएरे ऑटपुटस्ट्रीम का उपयोग करता हूं। गलतफहमी के लिए खेद है। – EagleBeak
मेरे पास एक समान प्रश्न है - http://stackoverflow.com/questions/40268320/how-to-store-object-on-s3-using-outputstream। क्या आप इसके लिए समाधान ढूंढ पाएंगे? यदि नहीं, तो आप अपने मामले में # 1 करने के बारे में कैसे गए? – Omnipresent