2017-08-22 3 views
0

Je travaille actuellement sur un code qui télécharge des objets en plusieurs parties à S3, et je suis en cours d'exécution dans cette erreur:AWS ResetException - Impossible de réinitialiser le flux d'entrée de demande

Caused by: com.amazonaws.ResetException: Failed to reset the request input stream; If the request involves an input stream, the maximum stream buffer size can be configured via request.getRequestClientOptions().setReadLimit(int) 

origine, le readLimit a été mis en à 5MB. J'avais changé le code de sorte que le ReadLimit sur le flux d'entrée serait la taille de l'objet arrondie au plus proche de 5 Mo (avec un plafond de 5 Go puisque c'est la limite AWS). Cela a semblé résoudre le problème, mais maintenant la même erreur apparaît dans de nouveaux endroits.

Quelqu'un at-il des suggestions pour quelle valeur définir le readLimit à pour la plus grande fiabilité?

Toute aide serait appréciée,

Merci

Ted

Répondre

0

Pour ceux qui recherchent une réponse, la solution est d'utiliser un RetryPolicy avec un BackOffStrategy. Une stratégie de backoff augmente lentement la durée entre les tentatives de connexion.

http://docs.aws.amazon.com/general/latest/gr/api-retries.html

De plus, si vous utilisez un backoffstrategy vous devez utiliser un FileStreamer compatible qui peut Mark/Reset lors du téléchargement des données.

https://github.com/awsdocs/aws-java-developer-guide/blob/master/doc_source/best-practices.rst