Помилка S3: Різниця між часом запиту та поточним часом занадто велика


118

У мене помилка Різниця між часом запиту та поточним часом занадто велика, коли метод виклику amazons3.ListObjects

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

    return result;
}

Що це може бути?

Відповіді:


160

Час у вашому локальному вікні не синхронізований з поточним часом. Синхронізуйте системний годинник, і проблема зникне.


Це вірно. Зрозуміло з повідомлення про помилку. Якщо вам цікаво, як знайти місцевий час на віддаленій машині або в хмарі, скористайтеся Інтернетом, щоб знайти поточний час. timeanddate.com :)
user_v

1
Я зіткнувся з тією ж помилкою. Скажіть, будь ласка, як виконати синхронізацію
Stas

38
Я мрію того дня, щоб повідомлення про помилки були більш прямими, "Ваш сервер встановлено неправильно", було б добре для мене.
adamdport

2
Налаштування часового поясу не має значення. Це важлива точність встановленого в даний час часу.
Позначте у Ramp51

1
В Австралії ми просто пішли на економію літнього часу (на 1 годину вперед), і тепер ця помилка кидається. Мій годинник правильний. Здається, помилка в AWS.
Лука

73

Для тих, хто використовує Vagrant, vagrant haltнаступний vagrant upпрацював для мене.


62

Годинник не синхронізований.

Я дотримувався кроків у цій публікації, щоб знову працювати, але також повинен був виконати наступну команду.

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

Якщо в будь-який момент ви отримаєте повідомлення про те, що NTP-сокет все ще використовується, зупиніть його sudo /etc/init.d/ntp stopта повторіть запуск команди.


3
Дякую! Працював як шарм. :)
NightMICU

Так, це вирішило мою проблему. Якщо у вас немає apt-get , використовуйте yum замість цього: sudo yum install ntp -y
Shougo Makishima

1
Працювали. Мені довелося працювати лише sudo ntpdate ntp.ubuntu.comна моєму сервері.
spnkr

27

У мене була така ж помилка, і я використовую Docker для Mac. Просто перезапуск Docker працював на мене.


15

У випадку, якщо хтось знайде це за допомогою Laravel та Homestead, просто працює

homestead halt

слідом за ним

homestead up

І ти добре піти знову.


15

Для тих, хто використовує Docker у Windows, спробуйте перезапустити Docker Engine у ​​розділі Налаштування-> Скинути-> Перезапустити Докер.


Це не відповідь. Напевно, якийсь коментар.
hB0

8

Як говорили інші, ваш місцевий годинник не синхронізований з AWS. Ви можете тримати його синхронізацію з серверами Amazon безпосередньо за допомогою NTP, тому вам не доведеться турбуватися про переміщення годин зараз або в майбутньому.

Примітка. Нижче наведені інструкції призначені для користувачів * nix. Я додав коментар щодо того, як це можна зробити в Windows, але як користувач, який не є Windows, я не можу перевірити їх точність.

  1. Щоб встановити NTP, просто виберіть одне з наступних, залежно від вашого розповсюдження:

    apt-get install ntp
    

    або

    yum install ntp 
    

    тощо.

  2. Налаштуйте NTP для використання серверів Amazon, наприклад:

    vim /etc/ntp.conf
    

    І в ньому прокоментуйте сервери за замовчуванням і додайте такі:

    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. А потім перезапустіть службу ntp:

    sudo service ntp restart
    

Джерело: https://www.allcloud.io/how-to/how-to-fix-amazon-s3-requesttimetooskewed/

І більш загальна стаття про збереження часу, синхронізованого з NTP: https://www.digitalocean.com/community/tutorials/how-to-set-up-time-synchronization-on-ubuntu-12-04


C: \ Користувачі \ Користувач> apt-get install ntp 'apt-get' не розпізнається як внутрішня чи зовнішня команда, функціонуюча програма або пакетний файл.
st78

apt-getце інсталятор пакунків для певних дистрибутивів Linux. Для Windows, ви можете здійснити пошук в Інтернеті для найкращого способу синхронізації з NTP. Ось посилання, яке я знайшов для win10: tenforums.com/tutorials/… , і ось ось для Windows Server: support.microsoft.com/en-us/help/816042/…
Кайл Чадда


4

якщо ця проблема у вас localhost для Windows 10

встановити час автоматично увімкнено та встановити часовий пояс автоматично увімкнено, щоб вирішити мою проблему.

введіть тут опис зображення


3

Це також може бути спричинено використанням асинхронізування / очікування при побудові об'єкта запиту поза завданням та фактичного виклику AWS всередині завдання. Якщо виконується багато завдань і завдання не планується вчасно або є якась інша операція, яка затримує фактичний виклик AWS, цей виняток може бути кинутий.



1

Якщо ви використовуєте virtualbox, час у віртуальній машині синхронізується з часом реальної машини. Просто фіксація часу у віртуальній машині не виправить проблему.


1

У мене виникла помилка, оскільки час і часовий пояс моєї локальної машини встановлені неправильно. Зміна їх на правильний час та часовий пояс працювала на мене.


1

Якщо ви отримаєте цю помилку у Windows, виконайте наступні кроки, щоб вирішити свою проблему. Змініть локальний параметр часу:
крок 1: натисніть на зміну налаштувань дати та часу
крок 2: у спливаючому вікні дата та час натисніть на вкладку часу в Інтернеті
крок 3: Наступний Клацніть Змінити налаштування
крок 4: у спадному меню Сервера виберіть time.nist.gov або перевірте цей веб-сайт
крок 5: натисніть кнопку ОК

Перезавантажте консоль і перевірте. Це працює...


0

Використання ntp може не працювати на всій версії вашого сервера на базі Linux (наприклад, застаріла версія сервера Ubuntu, яка більше не підтримується, що заблокує завантаження ntp, якщо воно ще не встановлено).

Якщо це ваша ситуація, ви можете встановити незалежні часові пояси для вашого VM Linux: https://community.rackspace.com/products/f/25/t/650

Після цього вам може знадобитися скинути час / дату. Інструкції щодо цього є у цій статті: http://codeghar.wordpress.com/2007/12/06/manage-time-in-ubuntu-through-command-line


0

Якщо ви перебуваєте у 2016 році та у Стамбулі, то тут дивна ситуація, що Туреччина вирішила все-таки не переходити на стандарти зимового часу, встановивши місцевий часовий пояс у Москві, а потім перезавантажте машину.


Я думаю, це має бути коментарем.
BlackVegetable

@BlackVegetable Я також подумав, що це може бути коментар, але річ полягає в тому, що якщо ви опинилися в ситуації, про яку я згадував, і збираєтесь слідувати інструкціям у межах прийнятої відповіді, вона залишатиметься невирішеною; ось чому це відповідь, яка забезпечує альтернативне рішення.
Ömer Faruk Almalı

0

Я зіткнувся з цією проблемою під керуванням Jet (Codeship) і Terraform на MacOS за допомогою Docker для Mac Beta каналу 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

Це було вирішено шляхом перезавантаження Docker.


0

Я тільки почав отримувати цю помилку, і синхронізація годинника не допомагає. (Я витратив 2 години, синхронізуючи це з кожним сервером часу, який я можу знайти, включаючи сервери AWS, але нічого не має значення.)

Точно те саме почалося з року тому 31 грудня 2017 року. У цьому випадку перезавантаження моєї системи та відновлення мого сервера (для цього використовується aws java sdk) виправили це. Я не знаю чому. Я припускав, що AWS має певну особливість часового поясу на кінець року. Можливо також, що поки я займався цим, часові сервери AWS виправили себе. Я не можу перевірити цю гіпотезу.

Тепер те ж саме раптом почало відбуватися 30 грудня 2018 р. Це не правильно в кінці року, але досить близько, щоб здатися підозрілим. (Ніколи не було цієї помилки, крім цих дат.) Перезавантаження та відновлення цього разу не допомагають.

Моє середовище розробників у цьому вікні - це Windows 10 під Паралелями. Ніщо інше в моїй системі не змінилося - як я двічі перевірив, повернувшись до попередніх знімків Parallels. Годинники на моєму хостовому MacOS і віртуальній Windows 10 є правильними.

Я підозрюю помилку AWS.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.