Błąd S3: Różnica między czasem żądania a aktualnym czasem jest zbyt duża

119

Mam błąd Różnica między czasem żądania a aktualnym czasem jest zbyt duża w przypadku wywołania metody amazons3.

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

    return result;
}

Co to może być?

st78
źródło

Odpowiedzi:

160

Czas w twoim lokalnym skrzynce nie jest zsynchronizowany z aktualnym czasem. Zsynchronizuj zegar systemowy, a problem zniknie.

Znak na rampie51
źródło
Zgadza się. Zrozumiano na podstawie komunikatu o błędzie. Jeśli zastanawiasz się, jak znaleźć czas lokalny na zdalnym komputerze lub w chmurze, użyj Internetu, aby znaleźć aktualny czas. timeanddate.com :)
user_v
1
Napotkałem ten sam błąd. Powiedz mi, jak przeprowadzić synchronizację
Staś
38
Marzę o dniu, w którym komunikaty o błędach byłyby bardziej bezpośrednie: „Czas na serwerze jest ustawiony nieprawidłowo” byłby dla mnie w porządku.
adamdport
2
Ustawienie strefy czasowej nie powinno mieć znaczenia. Ważna jest dokładność aktualnie ustawionego czasu.
Mark At Ramp51,
1
W Australii właśnie przeszliśmy do czasu letniego (1 godzinę do przodu) i teraz pojawia się ten błąd. Mój zegar jest poprawny. Wydaje się, że to błąd w AWS.
Luke
74

Dla tych, którzy używają Vagrant, pracował dla mnie , a vagrant haltnastępnie vagrant up.

Czar Pino
źródło
62

Zegar nie jest zsynchronizowany.

Wykonałem kroki opisane w tym poście, aby ponownie działało, ale musiałem również uruchomić następujące polecenie.

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

Jeśli w dowolnym momencie otrzymasz komunikat, że gniazdo NTP jest nadal używane, zatrzymaj je za pomocą sudo /etc/init.d/ntp stopi ponownie uruchom polecenie.

manafire
źródło
3
Dzięki! Działał jak urok. :)
NightMICU
Tak, to rozwiązało mój problem. Jeśli nie masz apt-get , użyj zamiast tego yum: sudo yum install ntp -y
Shougo Makishima
1
Pracował. Musiałem jednak działać tylko sudo ntpdate ntp.ubuntu.comna swoim serwerze.
spnkr
27

Wystąpił ten sam błąd i używam Dockera dla komputerów Mac. Po prostu ponowne uruchomienie Dockera działało dla mnie.

Dylan O'Carroll
źródło
15

Jeśli ktoś znajdzie to przy użyciu Laravel i Homestead, po prostu uruchom

homestead halt

śledzony przez

homestead up

I możesz znowu iść.

Obywatel
źródło
15

Dla tych, którzy używają Dockera w Windows, spróbuj ponownie uruchomić silnik Docker w Ustawienia-> Resetuj-> Uruchom ponownie Docker.

Julio Colon
źródło
To nie jest odpowiedź. Prawdopodobnie jakiś komentarz.
hB0
8

Jak powiedzieli inni, twój lokalny zegar nie jest zsynchronizowany z AWS. Możesz zsynchronizować go z serwerami Amazon bezpośrednio za pomocą NTP, więc nie będziesz musiał martwić się o przesunięcie zegara teraz lub w przyszłości.

Uwaga: Poniższe instrukcje są przeznaczone dla użytkowników * nix. Dodałem komentarz pokazujący, jak możesz to zrobić w systemie Windows, ale jako użytkownik spoza systemu Windows nie mogę zweryfikować ich dokładności.

  1. Aby zainstalować NTP, po prostu wybierz jedną z następujących opcji, w zależności od dystrybucji:

    apt-get install ntp
    

    lub

    yum install ntp 
    

    itp.

  2. Skonfiguruj NTP do korzystania z serwerów Amazon, na przykład:

    vim /etc/ntp.conf
    

    A w nim zakomentuj domyślne serwery i dodaj te:

    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. A następnie zrestartuj usługę ntp:

    sudo service ntp restart
    

Źródło: https://www.allcloud.io/how-to/how-to-fix-amazon-s3-requesttimetooskewed/

I bardziej ogólny artykuł na temat synchronizacji czasu z NTP: https://www.digitalocean.com/community/tutorials/how-to-set-up-time-synchronization-on-ubuntu-12-04

Kyle Chadha
źródło
C: \ Users \ User> apt-get install ntp „apt-get” nie jest rozpoznawane jako polecenie wewnętrzne lub zewnętrzne, program operacyjny lub plik wsadowy.
st78
apt-getjest instalatorem pakietów dla niektórych dystrybucji Linuksa. W systemie Windows możesz wyszukać w Internecie najlepszy sposób synchronizacji z NTP. Oto odniesienie, które znalazłem dla win10: tenforums.com/tutorials/… , a tutaj jest jedno dla Windows Server: support.microsoft.com/en-us/help/816042/ ...
Kyle Chadha
4

Spowoduje to prawidłowe zresetowanie zegara systemowego w systemie OSX. Przesyłanie S3 przy użyciu JS SDK działa teraz dla mnie w lokalnym programowaniu

ntpdate us.pool.ntp.org

Przeczytaj więcej na ten temat tutaj

phoenixbox
źródło
4

jeśli ten problem występuje w twoim lokalnym hoście dla systemu Windows 10

ustaw czas automatycznie ON i ustaw strefę czasową automatycznie ON to rozwiązuje mój problem.

wprowadź opis obrazu tutaj

Atul Baldaniya
źródło
3

Może to być również spowodowane użyciem async / await z konstrukcją obiektu żądania poza zadaniem i faktycznym wywołaniem AWS wewnątrz zadania. Jeśli jest uruchomionych wiele zadań, a zadanie nie jest zaplanowane na czas lub jest jakaś inna operacja opóźniająca faktyczne wywołanie usługi AWS, może zostać zgłoszony ten wyjątek.

James
źródło
1

Aby pozbyć się tego problemu, musisz tak ustawić czas klienta, aby maksymalna różnica znaczników czasu wynosiła do 15 minut. Ustaw także standardowy czas i strefę dla swojego systemu.

Sprawdź wszystkie szczegóły tutaj.

Nikunj Dhimar
źródło
1

Jeśli używasz virtualbox, czas na maszynie wirtualnej jest zsynchronizowany z czasem rzeczywistej maszyny. Po prostu ustalenie czasu na maszynie wirtualnej nie rozwiąże problemu.

Thiago Mata
źródło
1

Wystąpił ten błąd, ponieważ czas i strefa czasowa mojego komputera lokalnego zostały ustawione nieprawidłowo. Zmiana ich na właściwy czas i strefę czasową zadziałała dla mnie.

Adim Victor
źródło
1

Jeśli pojawi się ten błąd w systemie Windows, wykonaj następujące kroki, aby rozwiązać problem. Zmień ustawienia czasu lokalnego:
krok 1: kliknij opcję Zmień ustawienia daty i godziny
krok 2: w wyskakującym oknie Data i godzina kliknij kartę Czas internetowy
krok 3: następny Kliknij Zmień ustawienia
krok 4: z listy rozwijanej Serwer wybierz time.nist.gov lub sprawdź tę stronę internetową
krok 5: kliknij OK

Uruchom ponownie konsolę i sprawdź. To działa...

Laxminarayana
źródło
0

Używanie ntp może nie działać na wszystkich wersjach twojego serwera opartego na Linuksie (np. Nieaktualna wersja serwera Ubuntu, która nie jest już obsługiwana, co zablokuje ci możliwość pobrania ntp, jeśli nie jest jeszcze zainstalowany).

W takiej sytuacji możesz ustawić niezależne strefy czasowe dla maszyny wirtualnej z systemem Linux: https://community.rackspace.com/products/f/25/t/650

Po wykonaniu tej czynności może być konieczne zresetowanie godziny / daty. Instrukcje, jak to zrobić, znajdują się w tym artykule: http://codeghar.wordpress.com/2007/12/06/manage-time-in-ubuntu-through-command-line

socialmatchbox
źródło
0

Jeśli jesteś w 2016 roku iw Stambule, to dziwna sytuacja, że ​​Turcja i tak zdecydowała się nie przechodzić na standardy czasu zimowego, ustaw lokalną strefę czasową na Moskwę, a następnie uruchom ponownie komputer.

Ömer Faruk Almalı
źródło
Myślę, że to powinien być komentarz.
BlackVegetable
@BlackVegetable Pomyślałem również, że to może być komentarz, ale jeśli jesteś w sytuacji, o której wspomniałem i zamierzasz postępować zgodnie z instrukcjami zawartymi w zaakceptowanej odpowiedzi, pozostanie ona nierozwiązana; dlatego jest to odpowiedź, która zapewnia alternatywne rozwiązanie.
Ömer Faruk Almalı
0

Napotkałem ten problem podczas uruchamiania Jet (Codeship) i Terraform w systemie MacOS przy użyciu Docker for Mac Beta w wersji 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

Problem został rozwiązany przez ponowne uruchomienie Dockera.

EvilPlankton
źródło
0

Właśnie zacząłem otrzymywać ten błąd, a synchronizacja mojego zegara nie pomaga. (Spędziłem 2 godziny na synchronizowaniu go z każdym serwerem czasu, jaki mogę znaleźć, w tym z serwerami AWS, ale nic nie robi różnicy).

Dokładnie to samo zaczęło się dziać rok temu 31 grudnia 2017 r. W takim przypadku ponowne uruchomienie systemu i przebudowa serwera (który używa aws java sdk) naprawiło to. Nie wiem dlaczego. Założyłem, że AWS ma specyficzną strefę czasową na koniec roku. Możliwe jest również, że kiedy robiłem te rzeczy, serwery czasu AWS naprawiły się. Nie mam możliwości sprawdzenia tej hipotezy.

Teraz to samo zaczęło się nagle dziać 30 grudnia 2018 r. To nie jest koniec roku, ale na tyle blisko, że wydaje się podejrzany. (Ten błąd nigdy nie wystąpił z wyjątkiem tych dat). Ponowne uruchamianie i odbudowywanie nie pomaga tym razem.

Moje środowisko deweloperskie na tym pudełku to Windows 10 w Parallels. Nic więcej w moim systemie się nie zmieniło - co sprawdziłem dwukrotnie, przywracając poprzednie migawki Parallels. Zegary na moim hostie MacOS i wirtualnym systemie Windows 10 są poprawne.

Podejrzewam błąd AWS.

grzmot
źródło