DynamoDB peut-il stocker des images ?

Oui, mais seulement des petites. DynamoDB peut stocker des images sous forme d'attributs binaires (B) encodés en base64, à condition que l'élément entier reste sous la limite de 400 Ko. AWS recommande de stocker les images plus grandes dans Amazon S3 et de ne garder dans DynamoDB que les métadonnées de l'objet et une référence S3, car 400 Ko sont trop peu pour la plupart des fichiers média.

Comment fonctionne le stockage de petites images

Encode l'image en base64 et stocke-la dans un attribut binaire. DynamoDB compte la longueur en octets bruts dans le plafond de 400 Ko par élément : une vignette ou une icône tient, une photo complète généralement pas.

Le motif recommandé

Pour tout ce qui dépasse 400 Ko :

  1. Téléverse l'image sur Amazon S3.
  2. Stocke sa clé S3, sa taille, son type de contenu et ses autres métadonnées dans DynamoDB.
  3. Lis les métadonnées depuis DynamoDB, puis récupère l'objet depuis S3.

Note que DynamoDB et S3 ne partagent pas de transactions : ton application doit donc nettoyer les objets orphelins en cas d'échec.

Ce que coûte l'inlining

Prends un téléversement par seconde et dix consultations par seconde, en on-demand dans us-east-1, et fais passer les deux formes dans notre calculateur de tarifs :

Par moisImage de 380 Ko en lignePointeur de 119 octets
Écritures624,15 $1,64 $
Lectures (cohérence à terme)156,04 $1,64 $
Total des requêtes780,19 $3,29 $

Le même trafic coûte 238 fois plus cher, et c'est l'arrondi de capacité qui fait tout. Une unité d'écriture couvre 1 Ko, donc l'image en facture 380 là où le pointeur en facture 1. Les lectures sont arrondies à 4 Ko, donc chaque lecture en cohérence à terme de l'image coûte 47,5 unités de lecture contre 0,5.

Le stockage s'ajoute par-dessus. Un téléversement de 380 Ko par seconde ajoute 952 Go par mois, soit 238,09 $ aux 0,25 $ par Go-mois de DynamoDB ou 21,90 $ aux $0.023 de S3 Standard, et les téléversements du mois suivant en rajoutent autant.

L'élément pointeur que ces chiffres décrivent est celui-ci, et il mesure 119 octets :

{
  "pk": "IMG#2026-07-28#a1b2c3",
  "s3Key": "uploads/2026/07/28/a1b2c3.jpg",
  "contentType": "image/jpeg",
  "bytes": 389120,
  "width": 1920,
  "height": 1080,
  "uploadedAt": 1785283200
}

Aller plus loin

Voir la taille maximale d'un élément et mesure tes éléments avec le calculateur de taille d'élément. Télécharge DynoTable pour inspecter les attributs binaires.

Sources tarifaires

  • Amazon DynamoDB pricing — tarifs des unités de requête et du stockage, synchronisés dans le calculateur depuis l'AWS Price List API.
  • Amazon S3 pricing — stockage S3 Standard, $0.023 par Go-mois pour les 50 premiers To dans us-east-1 (lu depuis la Price List API le 2026-07-28).

Références

Dernière vérification le 2026-07-13 par rapport à la documentation officielle AWS liée ci-dessus.

Chiffré le 2026-07-28 avec notre propre calculateur de tarifs sur les tarifs us-east-1 qu'il synchronise depuis l'AWS Price List API. Entrées : on-demand, 1 écriture/seconde, 10 lectures/seconde en cohérence à terme, 380 Ko contre l'élément de 119 octets ci-dessus, palier gratuit désactivé.

Travaille avec DynamoDB sans la Console

Un client de bureau rapide pour DynamoDB qui exécute le vrai SQL que DynamoDB ne peut pas — JOINs, GROUP BY, agrégations — avec édition visuelle et un agent IA sur tes propres clés Bedrock.

Essai gratuit de 30 jours, sans carte bancaire — ensuite la formule Gratuit, sans limite de durée.