est ici l'avertissement que je reçois:AmazonS3: Avertissement Obtenir: S3AbortableInputStream: tous les octets ont été lus à partir du S3ObjectInputStream, abandon connexion HTTP
S3AbortableInputStream: tous les octets ont été lus à partir du S3ObjectInputStream, abandon connexion HTTP . Ceci est probablement une erreur et peut entraîner un comportement sous-optimal. Ne demandez que les octets dont vous avez besoin via un GET à distance ou vidangez le flux d'entrée après utilisation.
J'ai essayé d'utiliser try avec des ressources mais S3ObjectInputStream ne semble pas se fermer via cette méthode.
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
}
J'ai aussi essayé ci-dessous le code et la fermeture de façon explicite, mais cela ne fonctionne pas non plus:
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();
}
Toute aide serait appréciée. PS: Je ne lis que deux lignes du fichier à partir de S3 et le fichier contient plus de données.
Que voulez-vous dire par - "la connexion peut être réutilisée"? Je pensais qu'une connexion HTTP est créée pour chaque requête S3 GET – ares