ข้อผิดพลาด S3: ความแตกต่างระหว่างเวลาขอและเวลาปัจจุบันมีมากเกินไป


119

ฉันมีข้อผิดพลาดความแตกต่างระหว่างเวลาขอและเวลาปัจจุบันมีขนาดใหญ่เกินไปเมื่อวิธีการโทร 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
การตั้งค่าเขตเวลาไม่ควรสำคัญ ความแม่นยำของเวลาที่ตั้งไว้ในปัจจุบันเป็นสิ่งสำคัญ
Mark At Ramp51

1
ในออสเตรเลียเราเพิ่งใช้เวลาออมแสง (1 ชั่วโมงข้างหน้า) และตอนนี้ข้อผิดพลาดนี้กำลังเกิดขึ้น นาฬิกาของฉันถูกต้อง ดูเหมือนจะเป็นข้อบกพร่องใน AWS
Luke


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 ใน Setting-> Reset-> Restart Docker


นี่ไม่ใช่คำตอบ น่าจะเป็นความคิดเห็นบางอย่าง
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: \ Users \ User> apt-get install ntp 'apt-get' ไม่รู้จักเป็นคำสั่งภายในหรือภายนอกโปรแกรมที่ใช้งานได้หรือไฟล์แบตช์
st78

apt-getเป็นโปรแกรมติดตั้งแพ็คเกจสำหรับการแจกแจงลินุกซ์บางรุ่น สำหรับ Windows คุณสามารถค้นหาทางออนไลน์เพื่อหาวิธีที่ดีที่สุดในการซิงค์กับ NTP นี่คือข้อมูลอ้างอิงที่ฉันพบสำหรับ win10: tenforums.com/tutorials/…และนี่คือหนึ่งสำหรับ Windows Server: support.microsoft.com/en-us/help/816042/…
Kyle Chadha


4

หากปัญหานี้ใน localhost ของคุณสำหรับ windows 10

ตั้งเวลาโดยอัตโนมัติเปิดและตั้งค่าโซนเวลาโดยอัตโนมัติ ในสิ่งนี้ช่วยแก้ปัญหาของฉัน

ใส่คำอธิบายภาพที่นี่


3

นอกจากนี้ยังอาจเกิดจากการใช้ async / await กับการสร้างอ็อบเจ็กต์คำขอนอกงานและการเรียกใช้ AWS จริงภายในงาน หากมีงานจำนวนมากกำลังทำงานอยู่และงานนั้นไม่ได้กำหนดเวลาไว้หรือมีการดำเนินการอื่น ๆ บางอย่างที่ทำให้การโทรไปยัง AWS ล่าช้าข้อยกเว้นนี้อาจเกิดขึ้นได้


1

เพื่อกำจัดปัญหานี้คุณต้องปรับเวลาของลูกค้าเพื่อให้มีความแตกต่างของการประทับเวลาสูงสุดไม่เกิน 15 นาที กำหนดเวลาและโซนมาตรฐานสำหรับระบบของคุณด้วย

ตรวจสอบรายละเอียดทั้งหมดได้ที่นี่


1

หากคุณใช้ virtualbox เวลาในเครื่องเสมือนจะซิงค์กับเวลาของเครื่องจริง เพียงแค่แก้ไขเวลาลงในเครื่องเสมือนจะไม่สามารถแก้ไขปัญหาได้


1

ฉันพบข้อผิดพลาดนี้เนื่องจากเวลาและเขตเวลาของเครื่องในพื้นที่ของฉันถูกตั้งค่าไม่ถูกต้อง การเปลี่ยนให้เป็นเวลาและเขตเวลาที่ถูกต้องเหมาะกับฉัน


1

หากคุณได้รับข้อผิดพลาดนี้ในwindows ให้ทำตามขั้นตอนเหล่านี้เพื่อแก้ปัญหาของคุณ .. เปลี่ยนการตั้งค่าเวลาท้องถิ่นของคุณ:
ขั้นตอนที่ 1:คลิกที่เปลี่ยนการตั้งค่าวันที่และเวลา
ขั้นตอนที่ 2:จากหน้าต่างป๊อปอัปวันที่และเวลาคลิกที่แท็บเวลาอินเทอร์เน็ต
ขั้นตอนที่ 3:คลิกถัดไปที่เปลี่ยนการตั้งค่า
ขั้นตอนที่ 4:จากเซิร์ฟเวอร์แบบเลื่อนลงเลือกtime.nist.govหรือตรวจสอบเว็บไซต์นี้
ขั้นตอนที่ 5:คลิกที่ตกลง

รีสตาร์ทคอนโซลของคุณและตรวจสอบ มันได้ผล...


0

การใช้ ntp อาจใช้ไม่ได้กับเซิร์ฟเวอร์ที่ใช้ Linux ทุกเวอร์ชัน (เช่นเวอร์ชันเซิร์ฟเวอร์ Ubuntu ที่ล้าสมัยซึ่งไม่ได้รับการสนับสนุนอีกต่อไปซึ่งจะบล็อกคุณไม่ให้ดาวน์โหลด ntp หากยังไม่ได้ติดตั้ง)

หากเป็นสถานการณ์ของคุณคุณสามารถกำหนดเขตเวลาอิสระสำหรับ Linux VM ของคุณ: https://community.rackspace.com/products/f/25/t/650

หลังจากดำเนินการแล้วคุณอาจต้องรีเซ็ตเวลา / วันที่ คำแนะนำในการดำเนินการอยู่ในบทความนี้: http://codeghar.wordpress.com/2007/12/06/manage-time-in-ubuntu-through-command-line


0

หากคุณอยู่ในปี 2559 และในอิสตันบูลนี่เป็นสถานการณ์ที่แปลกที่ตุรกีตัดสินใจที่จะไม่เปลี่ยนไปใช้มาตรฐานเวลาฤดูหนาวอย่างไรก็ตามตั้งค่าเขตเวลาท้องถิ่นของคุณเป็นมอสโกวจากนั้นรีสตาร์ทเครื่อง


ผมคิดว่านี่ควรเป็นความคิดเห็น
BlackVegetable

@BlackVegetable ฉันยังคิดว่ามันอาจเป็นความคิดเห็น แต่สิ่งนั้นก็คือถ้าคุณอยู่ในสถานการณ์ที่ฉันพูดถึงและทำตามคำแนะนำภายในคำตอบที่ยอมรับมันจะยังคงไม่ได้รับการแก้ไข นั่นจึงเป็นคำตอบที่ให้ทางเลือกอื่น
Ömer Faruk Almalı

0

ฉันพบปัญหานี้ในการเรียกใช้ Jet (Codeship) และ Terraform บน MacOS โดยใช้ Docker สำหรับ 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

สิ่งนี้แก้ไขได้โดยการรีสตาร์ท Docker


0

ฉันเพิ่งเริ่มได้รับข้อผิดพลาดนี้และการซิงค์นาฬิกาไม่ได้ช่วยอะไร (ฉันใช้เวลา 2 ชั่วโมงในการซิงค์กับทุกครั้งที่หาได้รวมถึงเซิร์ฟเวอร์ AWS ด้วย แต่ไม่มีอะไรสร้างความแตกต่าง)

สิ่งเดียวกันนี้เริ่มเกิดขึ้นเมื่อปีที่แล้วในวันที่ 31 ธันวาคม 2017 ในกรณีนั้นการรีบูตระบบของฉันและสร้างเซิร์ฟเวอร์ของฉันใหม่ (ที่ใช้ aws java sdk) ได้รับการแก้ไข ฉันไม่รู้ว่าทำไม ฉันสันนิษฐานว่า AWS มีความไม่ชอบมาพากลในช่วงสิ้นปี อาจเป็นไปได้ว่าในขณะที่ฉันทำสิ่งเหล่านี้เซิร์ฟเวอร์เวลาของ AWS ได้แก้ไขตัวเอง ฉันไม่มีทางทดสอบสมมติฐานนั้นได้

ตอนนี้สิ่งเดียวกันก็เริ่มเกิดขึ้นอย่างกะทันหันในวันที่ 30 ธันวาคม 2018 มันไม่ถูกต้องในช่วงสิ้นปี แต่ใกล้มากพอที่จะดูน่าสงสัย (ไม่เคยได้รับข้อผิดพลาดนี้ยกเว้นในวันที่เหล่านี้) การรีบูตและการสร้างใหม่ไม่ได้ช่วยในครั้งนี้

สภาพแวดล้อม dev ของฉันในกล่องนี้คือ Windows 10 ภายใต้ Parallels ไม่มีสิ่งอื่นใดในระบบของฉันเปลี่ยนแปลง - เนื่องจากฉันได้ตรวจสอบซ้ำโดยย้อนกลับไปที่สแนปชอต Parallels ก่อนหน้านี้ นาฬิกาบน MacOS โฮสต์ของฉันและ Windows 10 เสมือนถูกต้อง

ฉันสงสัยว่ามีข้อบกพร่องของ AWS

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.