Comment éliminer l'erreur « Your socket connection to the server was not read from or written to within the timeout period » (Votre connexion de socket au serveur n'a pas été lue ou écrite dans le délai imparti) d'Amazon S3 ?

Dernière mise à jour : 05/01/2021

J'essaie de charger des fichiers dans Amazon Simple Storage Service (Amazon S3) à l'aide de l'interface de ligne de commande CLI (AWS) ou d'un kit SDK AWS. Toutefois, je reçois un message d'erreur. Comment résoudre ce problème ?

Brève description

Lorsque vous utilisez l'interface de ligne de commande (CLI) AWS ou le kit SDK AWS pour charger des fichiers sur Amazon S3, l'erreur suivante peut s'afficher :

Your socket connection to the server was not read from or written to within the timeout period. Idle connections will be closed. (Service: Amazon S3; Status Code: 400; Error Code: RequestTimeout)
Remarque : si vous recevez des erreurs lors de l'exécution des commandes CLI AWS, assurez-vous d'utiliser la version la plus récente.

Lorsque la connexion entre le client et le serveur Amazon S3 reste inactive pendant au moins 20 secondes, Amazon S3 ferme la connexion. Cela se traduit par l’erreur 400 RequestTimeout. Pour éliminer cette erreur, vérifiez :

  • que le nombre d'octets défini dans l'en-tête « Content-Length » est supérieur à la taille du fichier ;
  • les problèmes de réseau tels que la latence élevée, la perte de paquets et la congestion.

Solution

Le nombre d'octets défini dans l'en-tête « Content-Length » est supérieur à la taille du fichier

Lorsque vous envoyez une requête HTTP à Amazon S3, Amazon S3 s'attend à recevoir la quantité de données spécifiée dans l'en-tête Content-Length. Si la quantité de données attendue n'est pas reçue par Amazon S3 et que la connexion est inactive pendant au moins 20 secondes, la connexion est fermée.

Par conséquent, assurez-vous de vérifier la taille du fichier envoyé à Amazon S3. Le fichier doit être aligné sur la taille de fichier spécifiée dans l'en-tête Content-Length. Sinon, vous recevez une erreur 400 RequestTimeout .

Problèmes de réseau tels que latence élevée, perte de paquets et congestion

Si des paquets sont supprimés en raison d'une connexion réseau lente ou médiocre, Amazon S3 attend la réception du nombre d'octets prévu. Si la connexion est inactive pendant au moins 20 secondes, Amazon S3 ferme la connexion et envoie l'erreur 400 RequestTimeout. Pour déterminer si cela est à l'origine de l'erreur, effectuez une capture de paquets et recherchez les abandons de paquets.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?