मेरे पास एक ऐसा एप्लिकेशन है जो S3 पर बहुत अधिक काम करता है, अधिकतर इससे फ़ाइलें डाउनलोड करता है। मुझे इस तरह की कई त्रुटियां दिखाई दे रही हैं और मैं जानना चाहता हूं कि यह मेरे कोड पर कुछ है या यदि सेवा वास्तव में अविश्वसनीय है।एस 3 जावा क्लाइंट "सामग्री-लंबाई सीमित संदेश निकाय का समयपूर्व अंत" या "java.net.SocketException सॉकेट बंद"
कोड मैं S3 वस्तु स्ट्रीम से पढ़ने का उपयोग कर रहा हूँ इस प्रकार है:
public static final void write(InputStream stream, OutputStream output) {
byte[] buffer = new byte[1024];
int read = -1;
try {
while ((read = stream.read(buffer)) != -1) {
output.write(buffer, 0, read);
}
stream.close();
output.flush();
output.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
यह OutputStream एक नई BufferedOutputStream (नई FileOutputStream (फाइल)) है। मैं अमेज़ॅन एस 3 जावा क्लाइंट का नवीनतम संस्करण उपयोग कर रहा हूं और इस कॉल को छोड़ने से पहले चार बार पुनः प्रयास किया गया है। तो, इसे 4 बार करने की कोशिश करने के बाद भी यह विफल हो जाता है।
किसी भी संकेत या सुझाव कि मैं इसे कैसे संभवतः सुधार सकता हूं, इसकी सराहना की जाती है।
यह, (या के सबसे) सभी के साथ होता है फ़ाइलें यादृच्छिक फाइलों के साथ, या एक सीमित और प्रतिलिपि प्रस्तुत करने योग्य सेट के साथ? क्या आप पहले अपलोड से पहले कोई मेटाडेटा सेट कर रहे हैं? मैंने ऐसे मामलों को देखा है जहां कुछ फ़ाइलों पर मेटाडेटा (या की कमी) कुछ अजीब समस्याएं पैदा कर सकती है .. यदि आपने अभी तक कोशिश नहीं की है, तो यह एक कोशिश के लायक हो सकता है। –
अधिकतर यादृच्छिक फ़ाइलें और हम किसी मेटाडेटा का उपयोग नहीं करते हैं :( –
बस एक अनुमान। क्या आपने सुनिश्चित किया है, उन यादृच्छिक फ़ाइलों को s3 पर सही तरीके से अपलोड किया गया है? उन फ़ाइलों को GET अनुरोध या किसी अन्य टूल के माध्यम से डाउनलोड करने का प्रयास करें। – shashankaholic