Kesalahan S3: Perbedaan antara waktu permintaan dan waktu saat ini terlalu besar

119

Saya mengalami kesalahan Perbedaan antara waktu permintaan dan waktu saat ini terlalu besar ketika metode panggilan amazons3.ListObjects

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

    return result;
}

Bisa jadi apa?

st78
sumber

Jawaban:

160

Waktu di kotak lokal Anda tidak sinkron dengan waktu saat ini. Sinkronkan jam sistem Anda dan masalahnya akan hilang.

Mark At Ramp51
sumber
Betul sekali. Dipahami dari pesan kesalahan. Jika Anda bertanya-tanya bagaimana menemukan waktu lokal di mesin jarak jauh atau di cloud, gunakan internet untuk menemukan waktu saat ini. timeanddate.com :)
user_v
1
Saya menghadapi kesalahan yang sama. Tolong beri tahu saya cara melakukan sinkronisasi
Stas
38
Saya memimpikan hari ketika pesan kesalahan lebih langsung, "Waktu server Anda disetel secara tidak benar" akan baik-baik saja bagi saya.
adamdport
2
Pengaturan zona waktu seharusnya tidak menjadi masalah. Akurasi waktu yang ditentukan saat ini yang penting.
Tandai Di Ramp51
1
Di Australia kami baru saja beralih ke penghematan siang hari (1 jam lebih awal) dan sekarang kesalahan ini terjadi. Jam saya benar. Tampaknya menjadi bug di AWS.
Lukas
74

Bagi mereka yang menggunakan Vagrant, vagrant haltdiikuti oleh vagrant upbekerja untuk saya.

Czar Pino
sumber
62

Jam tidak sinkron.

Saya mengikuti langkah-langkah dalam posting ini untuk membuatnya berfungsi kembali, tetapi juga harus menjalankan perintah berikut.

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

Jika suatu saat Anda mendapatkan pesan yang mengatakan soket NTP masih digunakan, hentikan sudo /etc/init.d/ntp stopdan jalankan kembali perintah Anda.

manafire
sumber
3
Terima kasih! Bekerja seperti pesona. :)
NightMICU
Yay, ini memperbaiki masalah saya. Jika Anda tidak memiliki apt-get , gunakan yum sebagai gantinya: sudo yum install ntp -y
Shougo Makishima
1
Bekerja. Saya hanya harus menjalankan sudo ntpdate ntp.ubuntu.comdi server saya.
spnkr
27

Saya mengalami kesalahan yang sama dan saya menggunakan Docker untuk Mac. Cukup restart Docker sudah berhasil untuk saya.

Dylan O'Carroll
sumber
15

Jika ada yang menemukan ini menggunakan Laravel dan Homestead, cukup jalankan

homestead halt

diikuti oleh

homestead up

Dan Anda siap melakukannya lagi.

Warganegara
sumber
15

Bagi mereka yang menggunakan Docker di Windows coba restart Mesin Docker di Setting-> Reset-> Restart Docker.

Julio Colon
sumber
Ini bukanlah jawaban. Mungkin beberapa komentar.
hB0
8

Seperti yang dikatakan orang lain, jam lokal Anda tidak sinkron dengan AWS. Anda dapat tetap menyinkronkannya ke server Amazon secara langsung menggunakan NTP sehingga Anda tidak perlu khawatir tentang pergeseran jam sekarang atau di masa mendatang.

Catatan: Petunjuk di bawah ini untuk pengguna * nix. Saya telah menambahkan komentar tentang bagaimana Anda dapat melakukannya di Windows, tetapi sebagai pengguna non-Windows saya tidak dapat memverifikasi keakuratannya.

  1. Untuk menginstal NTP, cukup pilih salah satu dari berikut ini, bergantung pada distribusi Anda:

    apt-get install ntp
    

    atau

    yum install ntp 
    

    dll.

  2. Konfigurasikan NTP untuk menggunakan server amazon, seperti:

    vim /etc/ntp.conf
    

    Dan di dalamnya, komentari server default dan tambahkan ini:

    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. Dan kemudian restart layanan ntp:

    sudo service ntp restart
    

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

Dan artikel yang lebih umum tentang menjaga waktu Anda disinkronkan dengan NTP: https://www.digitalocean.com/community/tutorials/how-to-set-up-time-synchronization-on-ubuntu-12-04

Kyle Chadha
sumber
C: \ Users \ User> apt-get install ntp 'apt-get' tidak dikenali sebagai perintah internal atau eksternal, program yang dapat dioperasikan atau file batch.
st78
apt-getadalah penginstal paket untuk distribusi linux tertentu. Untuk Windows, Anda dapat melakukan pencarian online untuk mengetahui cara terbaik melakukan sinkronisasi ke NTP. Berikut referensi yang saya temukan untuk win10: tenforums.com/tutorials/… , dan ini satu untuk Windows Server: support.microsoft.com/en-us/help/816042/…
Kyle Chadha
4

Ini mengatur ulang jam sistem saya dengan benar di OSX. Unggahan S3 menggunakan JS SDK sekarang berfungsi untuk saya di pengembang lokal

ntpdate us.pool.ntp.org

Baca lebih banyak tentang ini disini

kotak burung phoenix
sumber
4

jika masalah ini di localhost Anda untuk windows 10

atur waktu secara otomatis ON dan atur zona waktu secara otomatis ON ini memecahkan masalah saya.

masukkan deskripsi gambar di sini

Atul Baldaniya
sumber
3

Ini juga bisa disebabkan oleh penggunaan async / await dengan konstruksi objek permintaan di luar tugas dan panggilan sebenarnya ke AWS di dalam tugas. Jika ada banyak tugas yang berjalan dan tugas tersebut tidak dijadwalkan tepat waktu, atau ada beberapa operasi lain yang menunda panggilan sebenarnya ke AWS, pengecualian ini dapat dilakukan.

James
sumber
1

Untuk mengatasi masalah ini, Anda harus menyesuaikan waktu klien sehingga ada perbedaan stempel waktu maksimum hingga 15 menit. Tetapkan juga waktu dan zona standar untuk sistem Anda.

Lihat Detail lengkapnya di sini.

Nikunj Dhimar
sumber
1

Jika Anda menggunakan kotak virtual, waktu ke mesin virtual disinkronkan dengan waktu mesin sebenarnya. Hanya memperbaiki waktu ke mesin virtual tidak akan memperbaiki masalah.

Thiago Mata
sumber
1

Saya mengalami kesalahan ini karena waktu dan zona waktu mesin lokal saya tidak disetel dengan benar. Mengubahnya ke waktu dan zona waktu yang benar berhasil untuk saya.

Adim Victor
sumber
1

Jika Anda mendapatkan kesalahan ini di windows ikuti langkah-langkah berikut untuk menyelesaikan masalah Anda .. Ubah pengaturan waktu lokal Anda:
langkah 1: klik pada perubahan tanggal dan waktu pengaturan
langkah 2: dari jendela Tanggal dan Waktu popup klik pada Tab Waktu Internet
langkah 3: selanjutnya Klik Ubah Pengaturan
langkah 4: dari Server drop down pilih time.nist.gov atau periksa situs web ini
langkah 5: klik OK

Mulai ulang konsol Anda dan periksa. Berhasil...

Laxminarayana
sumber
0

Menggunakan ntp mungkin tidak bekerja pada semua versi server berbasis Linux Anda (misalnya versi server Ubuntu yang sudah kadaluwarsa yang tidak lagi didukung yang akan menghalangi Anda untuk mengunduh ntp jika belum diinstal).

Jika ini situasi Anda, Anda dapat menetapkan zona waktu independen untuk VM Linux Anda: https://community.rackspace.com/products/f/25/t/650

Setelah Anda melakukan ini, Anda mungkin perlu mengatur ulang waktu / tanggal. Petunjuk untuk melakukan ini ada di artikel ini: http://codeghar.wordpress.com/2007/12/06/manage-time-in-ubuntu-through-command-line

kotak pertandingan sosial
sumber
0

Jika Anda berada di tahun 2016 dan di Istanbul, ini adalah situasi yang aneh sehingga Turki memutuskan untuk tidak beralih ke standar waktu musim dingin, tetapkan zona waktu lokal Anda ke Moskow, lalu mulai ulang komputer Anda.

Ömer Faruk Almalı
sumber
Saya pikir ini harus menjadi komentar.
BlackVegetable
@BlackVegetable Saya juga berpikir bahwa itu bisa menjadi komentar tetapi masalahnya adalah jika Anda berada dalam situasi yang saya sebutkan dan akan mengikuti instruksi dalam jawaban yang diterima itu akan tetap tidak terpecahkan; itulah mengapa ini adalah jawaban yang memberikan solusi alternatif.
Ömer Faruk Almalı
0

Saya mengalami masalah ini menjalankan Jet (Codeship) dan Terraform di MacOS menggunakan Docker untuk Mac Beta saluran 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

Ini diatasi dengan memulai ulang Docker.

EvilPlankton
sumber
0

Saya baru saja mulai mendapatkan kesalahan ini, dan sinkronisasi jam saya tidak membantu. (Saya telah menghabiskan 2 jam untuk menyinkronkannya ke setiap server waktu yang dapat saya temukan, termasuk server AWS, tetapi tidak ada yang membuat perbedaan.)

Hal yang persis sama mulai terjadi setahun yang lalu pada 31 Desember 2017. Dalam hal ini, me-reboot sistem saya, dan membangun kembali server saya (yang menggunakan aws java sdk) memperbaikinya. Saya tidak tahu kenapa. Saya berasumsi bahwa AWS memiliki kekhasan zona waktu akhir tahun. Mungkin juga saat saya melakukan hal-hal ini, server waktu AWS memperbaiki dirinya sendiri. Saya tidak punya cara untuk menguji hipotesis itu.

Sekarang, hal yang sama tiba-tiba mulai terjadi pada 30 Desember 2018. Memang tidak tepat di akhir tahun, tapi cukup mendekati untuk tampak mencurigakan. (Tidak pernah mendapatkan kesalahan ini kecuali pada tanggal-tanggal ini.) Mem-boot ulang dan membangun kembali tidak membantu kali ini.

Lingkungan dev saya pada kotak ini adalah Windows 10 di bawah Parallels. Tidak ada hal lain di sistem saya yang berubah - karena saya telah memeriksa ulang dengan memutar kembali ke snapshot Parallels sebelumnya. Jam di MacOS host saya dan Windows 10 virtual sudah benar.

Saya mencurigai adanya bug AWS.

guntur
sumber