Erreur S3: la différence entre l'heure de la demande et l'heure actuelle est trop grande


119

J'ai une erreur La différence entre l'heure de la demande et l'heure actuelle est trop grande lors de l'appel de la méthode amazons3.ListObjects

ListObjectsRequest request = new ListObjectsRequest() {
    BucketName = BucketName, Prefix = fullKey 
}; 
using (ListObjectsResponse response = s3Client.ListObjects(request))
{
    bool result = response.S3Objects.Count > 0;

    return result;
}

Qu'est-ce que ça pourrait être?

Réponses:


160

L'heure de votre box local n'est pas synchronisée avec l'heure actuelle. Synchronisez votre horloge système et le problème disparaîtra.


C'est vrai. Compris à partir du message d'erreur. Si vous vous demandez comment trouver l'heure locale sur une machine distante ou sur le cloud, utilisez Internet pour trouver l'heure actuelle. timeanddate.com :)
user_v

1
J'ai fait face à la même erreur. Veuillez me dire comment effectuer la synchronisation
Stas

38
Je rêve du jour où les messages d'erreur sont plus directs, "L'heure de votre serveur est mal réglée" me conviendrait parfaitement.
adamdport le

2
Le paramètre de fuseau horaire ne devrait pas avoir d'importance. C'est la précision de l'heure actuellement réglée qui est importante.
Mark At Ramp51

1
En Australie, nous venons de passer à l'heure d'été (1 heure à l'avance) et cette erreur est maintenant lancée. Mon horloge est correcte. Semble être un bogue dans AWS.
Luke

74

Pour ceux qui utilisent Vagrant, un vagrant haltsuivi de a vagrant upfonctionné pour moi.


62

L'horloge n'est pas synchronisée.

J'ai suivi les étapes de cet article pour le faire fonctionner à nouveau, mais j'ai également dû exécuter la commande suivante.

sudo ntpdate ntp.ubuntu.com
sudo apt-get install ntp

Si à tout moment vous recevez un message indiquant que le socket NTP est toujours utilisé, arrêtez-le avec sudo /etc/init.d/ntp stopet réexécutez votre commande.


3
Merci! A fonctionné comme un charme. :)
NightMICU

Ouais, cela a résolu mon problème. Si vous n'avez pas apt-get , utilisez plutôt yum: sudo yum install ntp -y
Shougo Makishima

1
Travaillé. sudo ntpdate ntp.ubuntu.comCependant, je n'avais qu'à courir sur mon serveur.
spnkr

27

J'ai eu la même erreur et j'utilise Docker pour Mac. Le simple redémarrage de Docker a fonctionné pour moi.


15

Au cas où quelqu'un trouverait cela en utilisant Laravel et Homestead, exécutez simplement

homestead halt

suivi par

homestead up

Et vous êtes prêt à repartir.


15

Pour ceux qui utilisent Docker dans Windows, essayez de redémarrer Docker Engine dans Setting-> Reset-> Restart Docker.


Ceci n'est pas une réponse. Probablement un commentaire.
hB0

8

Comme d'autres l'ont dit, votre horloge locale n'est pas synchronisée avec AWS. Vous pouvez le garder synchronisé avec les serveurs d'Amazon directement à l' aide de NTP afin de ne pas avoir à vous soucier de la dérive d'horloge maintenant ou à l'avenir.

Remarque: les instructions ci-dessous sont destinées aux utilisateurs * nix. J'ai ajouté un commentaire sur la façon dont vous pourriez le faire dans Windows, mais en tant qu'utilisateur non Windows, je ne peux pas vérifier leur exactitude.

  1. Pour installer NTP, choisissez simplement l'une des options suivantes, en fonction de votre distribution:

    apt-get install ntp
    

    ou

    yum install ntp 
    

    etc.

  2. Configurez NTP pour utiliser des serveurs Amazon, comme ceci:

    vim /etc/ntp.conf
    

    Et dedans, commentez les serveurs par défaut et ajoutez-les:

    server 0.amazon.pool.ntp.org iburst
    server 1.amazon.pool.ntp.org iburst
    server 2.amazon.pool.ntp.org iburst
    server 3.amazon.pool.ntp.org iburst
    
  3. Et puis redémarrez le service ntp:

    sudo service ntp restart
    

La source: https://www.allcloud.io/how-to/how-to-fix-amazon-s3-requesttimetooskewed/

Et un article plus général sur la synchronisation de votre temps avec NTP: https://www.digitalocean.com/community/tutorials/how-to-set-up-time-synchronization-on-ubuntu-12-04


C: \ Users \ User> apt-get install ntp 'apt-get' n'est pas reconnu comme une commande interne ou externe, un programme utilisable ou un fichier de commandes.
st78

apt-getest un installateur de paquet pour certaines distributions Linux. Pour Windows, vous pouvez effectuer une recherche en ligne pour trouver le meilleur moyen de synchroniser avec NTP. Voici une référence que j'ai trouvée pour win10: tenforums.com/tutorials/… , et en voici une pour Windows Server: support.microsoft.com/en-us/help/816042/…
Kyle Chadha

4

Cela réinitialise correctement mon horloge système sur OSX. Les téléchargements S3 à l'aide du SDK JS fonctionnent maintenant pour moi dans le développement local

ntpdate us.pool.ntp.org

En savoir plus à ce sujet ici


4

si ce problème dans votre localhost pour Windows 10

régler l'heure automatiquement sur ON et régler le fuseau horaire automatiquement sur cela résout mon problème.

entrez la description de l'image ici


3

Cela peut également être dû à l'utilisation de async / await avec la construction de l'objet de requête en dehors de la tâche et l'appel réel à AWS à l'intérieur de la tâche. Si de nombreuses tâches sont en cours d'exécution et que la tâche n'est pas planifiée à temps, ou si une autre opération retarde l'appel réel à AWS, cette exception peut être levée.


1

Pour résoudre ce problème, vous devez ajuster la synchronisation du client afin qu'il y ait une différence d'horodatage maximale allant jusqu'à 15 minutes. Réglez également l'heure et le fuseau standard de votre système.

Consultez le détail complet ici.


1

Si vous utilisez une virtualbox, l'heure dans la machine virtuelle est synchronisée avec l'heure de la machine réelle. Fixer simplement l'heure dans la machine virtuelle ne résoudra pas le problème.


1

J'ai eu cette erreur parce que l'heure et le fuseau horaire de mon ordinateur local étaient mal définis. Les changer à l'heure et au fuseau horaire corrects a fonctionné pour moi.


1

Si vous obtenez cette erreur dans Windows, suivez ces étapes pour résoudre votre problème. Modifiez votre paramètre d'heure locale:
étape 1: cliquez sur modifier les paramètres de date et d'heure
étape 2: dans la fenêtre contextuelle Date et heure, cliquez sur l' onglet Heure Internet
étape 3: suivant Cliquez sur Modifier les paramètres
étape 4: dans la liste déroulante Serveur, sélectionnez time.nist.gov ou consultez ce site Web
étape 5: cliquez sur OK

Redémarrez votre console et vérifiez. Ça marche...


0

L'utilisation de ntp peut ne pas fonctionner sur toutes les versions de votre serveur basé sur Linux (par exemple, une version de serveur Ubuntu obsolète qui n'est plus prise en charge et qui vous empêchera de télécharger ntp si elle n'est pas déjà installée).

Si tel est votre cas, vous pouvez définir des fuseaux horaires indépendants pour votre machine virtuelle Linux: https://community.rackspace.com/products/f/25/t/650

Après cela, vous devrez peut-être réinitialiser l'heure / la date. Les instructions pour cela se trouvent dans cet article: http://codeghar.wordpress.com/2007/12/06/manage-time-in-ubuntu-through-command-line


0

Si vous êtes en 2016 et à Istanbul, voici une situation étrange dans laquelle la Turquie a décidé de ne pas passer aux normes d'heure d'hiver de toute façon, réglez votre fuseau horaire local sur Moscou, puis redémarrez votre machine.


Je pense que cela devrait être un commentaire.
BlackVegetable

@BlackVegetable J'ai aussi pensé que cela pourrait être un commentaire, mais le fait est que si vous êtes dans une situation que j'ai mentionnée et que vous allez suivre les instructions dans la réponse acceptée, cela restera non résolu; c'est pourquoi c'est une réponse qui offre une solution alternative.
Ömer Faruk Almalı

0

J'ai rencontré ce problème en exécutant Jet (Codeship) et Terraform sur MacOS en utilisant Docker pour Mac Beta channel 1.13.1-beta42.

Failed to read state: Error reloading remote state: RequestTimeTooSkewed: The difference between the request time and the current time is too large.
status code: 403, request id: 9D32BA2A5360FC18

Ce problème a été résolu en redémarrant Docker.


0

Je viens de commencer à recevoir cette erreur et la synchronisation de mon horloge n'aide pas. (J'ai passé 2 heures à le synchroniser avec tous les serveurs de temps que je peux trouver, y compris les serveurs AWS, mais rien ne fait de différence.)

Exactement la même chose a commencé à se produire il y a un an, le 31 décembre 2017. Dans ce cas, le redémarrage de mon système et la reconstruction de mon serveur (qui utilise le sdk aws java) ont résolu le problème. Je ne sais pas pourquoi. J'ai supposé qu'AWS avait une particularité de fuseau horaire de fin d'année. Il est également possible que pendant que je faisais ces choses, les serveurs de temps AWS se soient réparés. Je n'ai aucun moyen de tester cette hypothèse.

Maintenant, la même chose a soudainement commencé à se produire le 30 décembre 2018. Ce n'est pas juste à la fin de l'année, mais assez proche pour sembler suspect. (Je n'ai jamais eu cette erreur sauf à ces dates.) Le redémarrage et la reconstruction n'aident pas cette fois.

Mon environnement de développement sur cette boîte est Windows 10 sous Parallels. Rien d'autre sur mon système n'a changé - comme j'ai vérifié deux fois en revenant aux instantanés précédents de Parallels. Les horloges de mon hôte MacOS et de Windows 10 virtuel sont correctes.

Je soupçonne un bogue AWS.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.