मैं अमेज़ॅन एस 3 बाल्टी में फ़ाइलों को अपलोड कर रहा हूं। फाइलें अपलोड की जा रही हैं लेकिन मुझे निम्नलिखित चेतावनी मिलती है।इनपुटस्ट्रीम सामग्री को सेट करने के लिए कैसे करें लंबाई
चेतावनी: स्ट्रीम डेटा के लिए निर्दिष्ट कोई सामग्री लंबाई नहीं। स्ट्रीम सामग्री स्मृति में buffered किया जाएगा और परिणामस्वरूप स्मृति त्रुटियों से बाहर हो सकता है।
तो मैं अपने कोड
metaData.setContentLength(IOUtils.toByteArray(input).length);
में निम्नलिखित पंक्ति जोड़ा है, लेकिन उसके बाद मैं निम्नलिखित संदेश मिला। मुझे यह भी नहीं पता कि यह एक चेतावनी है या क्या।
डेटा पढ़ने की अपेक्षा से अलग लंबाई है: डेटा लम्बाई = 0; अपेक्षित लंबाई = 1119 9 2; includeSkipped = झूठी; in.getClass() = वर्ग sun.net.httpserver.FixedLengthInputStream; markedSupported = झूठी; चिह्नित = 0; resetSinceLastMarked = झूठी; markCount = 0; resetCount = 0
मैं इनपुट स्टेम के मेटाडेटा को सामग्री लम्बाई कैसे सेट कर सकता हूं? किसी भी तरह की सहायता का स्वागत किया जाएगा।
ध्यान दें कि यदि आप ऊपर दृष्टिकोण S3 के लिए बड़ी फ़ाइलों को अपलोड कर रहे हैं पहले एक बाइट सरणी में डेटा लोड। यह स्मृति अपवाद से बाहर हो सकता है। – maxTrialfire
@maxTrialfire उस स्थिति में, जब आप बड़ी फ़ाइल अपलोड कर रहे हों तो आप ओओएम को कैसे रोकेंगे? – user482594
@ user482594 उस स्थिति में आपको एक चंकित (मल्टीपार्ट) अपलोड करने की आवश्यकता है। – maxTrialfire