AmazonS3: Erste Warnung: S3AbortableInputStream:Nicht alle bytes gelesen wurden, von der S3ObjectInputStream, Abbruch der HTTP-Verbindung
Hier ist die Warnung, die ich erhalte:
S3AbortableInputStream:Nicht alle bytes gelesen wurden, von der S3ObjectInputStream, Abbruch der HTTP-Verbindung. Dies ist wahrscheinlich ein Fehler und kann dazu führen, sub-optimales Verhalten. Anfrage nur die bytes müssen Sie über einer reichte HOLEN oder ablassen des input-Streams nach dem Gebrauch.
Versuchte ich mit try-mit-Ressourcen, aber S3ObjectInputStream scheint nicht zu schließen, über diese Methode.
try (S3Object s3object = s3Client.getObject(new GetObjectRequest(bucket, key));
S3ObjectInputStream s3ObjectInputStream = s3object.getObjectContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(s3ObjectInputStream, StandardCharsets.UTF_8));
){
//some code here blah blah blah
}
Ich habe auch versucht folgenden code explizit schließen, aber das funktioniert auch nicht:
S3Object s3object = s3Client.getObject(new GetObjectRequest(bucket, key));
S3ObjectInputStream s3ObjectInputStream = s3object.getObjectContent();
try (BufferedReader reader = new BufferedReader(new InputStreamReader(s3ObjectInputStream, StandardCharsets.UTF_8));
){
//some code here blah blah
s3ObjectInputStream.close();
s3object.close();
}
Jede mögliche Hilfe würde geschätzt.
PS: ich bin nur das Lesen von zwei Zeilen der Datei aus dem S3 und die Datei mehr Daten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bekam die Antwort über ein anderes medium. Teilen Sie es hier:
Die Warnung zeigt an, dass Sie mit dem Namen close() Lesen, ohne die ganze Datei. Dies ist problematisch, denn S3 ist immer noch versuchen, Daten zu senden, und du bist verlassen, die Verbindung in einem traurigen Zustand.
Gibt es hier zwei Optionen:
Hinzufügen, um ein Beispiel zu Chirag Sejpal Antwort (ausführend option #1), die Folgendes kann verwendet werden, um Lesen Sie den rest der Daten aus dem input-stream, bevor Sie es schließen:
// Read from stream as necessary
Teil// Read from stream as necessary
Teil.java.io.IOException: Attempted read on closed stream