From 2b355e748e52493555e2368908a53b64588ea4a8 Mon Sep 17 00:00:00 2001 From: Marcel Date: Mon, 13 Apr 2026 23:00:52 +0200 Subject: [PATCH] fix(ocr): increase presigned URL TTL from 15 min to 1 hour A 100-page document at ~10 s/page takes ~17 min on CPU-only hardware, which could cause the presigned URL to expire mid-OCR job. 1 hour gives ample headroom for any realistic document size in this archive. Co-Authored-By: Claude Sonnet 4.6 --- .../java/org/raddatz/familienarchiv/service/FileService.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/backend/src/main/java/org/raddatz/familienarchiv/service/FileService.java b/backend/src/main/java/org/raddatz/familienarchiv/service/FileService.java index acf6f23d..29ca2be6 100644 --- a/backend/src/main/java/org/raddatz/familienarchiv/service/FileService.java +++ b/backend/src/main/java/org/raddatz/familienarchiv/service/FileService.java @@ -114,7 +114,8 @@ public class FileService { /** * Generates a presigned URL for downloading an object from S3/MinIO. - * Valid for 15 minutes — enough for OCR processing on CPU. + * Valid for 1 hour — covers multi-page documents on CPU-only OCR hardware + * (a 100-page document at 10 s/page takes ~17 min; 1 h gives ample headroom). */ public String generatePresignedUrl(String s3Key) { GetObjectRequest getObjectRequest = GetObjectRequest.builder() @@ -123,7 +124,7 @@ public class FileService { .build(); GetObjectPresignRequest presignRequest = GetObjectPresignRequest.builder() - .signatureDuration(Duration.ofMinutes(15)) + .signatureDuration(Duration.ofHours(1)) .getObjectRequest(getObjectRequest) .build();