Presigned URL

Advanced Ecosystem 🟡 Mid

Definition

URL temporaire signée cryptographiquement qui donne un accès limité dans le temps à un objet S3. Permet l'upload/download direct sans exposer les credentials.

Analogie

Un ticket de vestiaire avec date d'expiration : il donne accès à un seul casier pendant un temps limité.

Exemple de code

import { getSignedUrl } from '@aws-sdk/s3-request-presigner';
const url = await getSignedUrl(s3, new PutObjectCommand({
  Bucket: 'uploads',
  Key: `docs/${fileId}`,
  ContentType: 'application/pdf',
}), { expiresIn: 300 }); // 5 min

Cas d'usage

Permettre l'upload direct du navigateur vers S3 sans passer par votre serveur backend.

Anti-pattern

Générer des presigned URLs avec une durée trop longue (jours) ou sans restriction de content-type.
#storage#security