🪟 Windows TippsThe Gemini desktop app is now available for Windows(11.09.2026 um 17:06 Uhr)
🔧 AI Nachrichten ChatGPT automatically logged out [Fix](12.09.2026 um 17:09 Uhr)
🪟 Windows TippsHow to remove a Drop-Down list in Excel(13.09.2026 um 01:50 Uhr)
⚠️ Malware / Trojaner / VirenWindows 11 just dropped the tool ransomware abused, Microsoft says don’t restore WMIC(10.09.2026 um 20:11 Uhr)
🪟 Windows TippsServertimeout in Outlook über 10 Minuten verlängern(12.09.2026 um 15:10 Uhr)
🪟 Windows TippsThe Gemini desktop app is now available for Windows(11.09.2026 um 17:06 Uhr)
🔧 AI Nachrichten ChatGPT automatically logged out [Fix](12.09.2026 um 17:09 Uhr)
🪟 Windows TippsHow to remove a Drop-Down list in Excel(13.09.2026 um 01:50 Uhr)
⚠️ Malware / Trojaner / VirenWindows 11 just dropped the tool ransomware abused, Microsoft says don’t restore WMIC(10.09.2026 um 20:11 Uhr)
🪟 Windows TippsServertimeout in Outlook über 10 Minuten verlängern(12.09.2026 um 15:10 Uhr)

🔧 Programmierung 🕛 vor 2 Monaten 2 Min Lesezeit
0

Your R2 presigned URL has a shorter TTL than you think — here's why

↗ Quelle (dev.to)
🗣️ Stimme:

A 3600-second presigned URL expiring after 38 minutes isn't a permissions bug. It's a clock skew bug — and it took me an NTP issue on my dev laptop to finally see it clearly.



R2's presigned URL validation is S3-compatible, which means expiry is calculated from the X-Amz-Date value baked into the URL at signing time — not from wall-clock time at first use. If the Worker PoP that signs the URL has a clock 30 seconds ahead of the PoP that validates the request, you silently lose 30 seconds off the back end. That's survivable. The nastier version is a drifting client clock: I had a mobile client running 4 minutes fast, and a URL signed with a nominal 1-hour TTL was throwing SignatureDoesNotMatch errors with 5 minutes left on the clock. From the user's side it just looked like a 403 permissions failure — no indication it was a timing problem at all.



The fix I landed on is a signing buffer: tell the client the URL expires in nominalTtl, but actually sign it for nominalTtl + 300s. Five extra minutes absorbed every real-world drift case I've seen in production traffic:




CODE
const CLOCK_SKEW_BUFFER_SECONDS = 300;

export async function signGetUrlWithBuffer(
env: Env,
key: string,
nominalTtlSeconds: number
): Promise<{ url: string; expiresAt: number }> {
const signingTtl = nominalTtlSeconds + CLOCK_SKEW_BUFFER_SECONDS;
const url = await signGetUrl(env, key, signingTtl);
const expiresAt = Date.now() + nominalTtlSeconds * 1000;
return { url, expiresAt };
}






The client's expiresAt is honest. The signed TTL just has a quiet cushion on top. One other thing worth knowing: mobile browsers behind aggressive proxy layers — I specifically noticed this in Korean carrier traffic — will reject presigned URLs with TTLs under 60 seconds. R2 itself allows down to 1 second, but the proxy doesn't care. Floor your TTLs at 60s if you have any mobile users outside North America or Europe.



I wrote up the full breakdown — including the Date.now() freezing behavior inside V8 isolates during cold starts (which caused a 1-2% silent 403 rate during a high-traffic campaign flush) and how to wire --persist-to locally so you can actually verify cross-restart URL validity — over on dailymanuallab.com.



Full post →

Vollständiger Original-Bericht
Ausführliche Details, Code-Beispiele & Hersteller-Stellungnahme auf dev.to.
↗ Original-Artikel auf dev.to lesen
Wie bewertest du diesen Beitrag?
1 Klick Feedback
Teilen mit Netzwerk & Team:

Community-Analysen & Experten-Meinungen 0

Verfasse deine eigene Analyse, teile Workarounds oder diskutiere diesen Vorfall im Blog.
Noch keine Community-Analyse verfasst. Markiere einen Textabschnitt oder klicke oben auf Eigene Analyse verfassen“!
Community Pulse: Relevanz-Einschätzung
1 Klick Experten-Votum
🔴 Akute Relevanz 0%
🟡 In Evaluierung 0%
🟢 Keine Auswirkung 0%
Spannende Innovation 0%
Verwandte Story-Cluster & Quellen (Vektor-KI)
Port 8095 Engine
1 Quelle
The Gemini desktop app is now available for Windows
1 Quelle
ChatGPT automatically logged out [Fix]
1 Quelle
How to remove a Drop-Down list in Excel
Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten Your R2 presigned URL has a shorter TTL than you think — here's why

Thematisch verwandte Begriffe: Your, presigned, shorter, than · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...