DynamoDB può memorizzare immagini?
Sì, ma solo piccole. DynamoDB può memorizzare immagini come attributi Binary (B) codificati in base64, a patto che l'Item intero resti sotto il limite di 400 KB. AWS consiglia di memorizzare le immagini più grandi in Amazon S3 e di tenere in DynamoDB solo i metadati dell'oggetto e un riferimento a S3, dato che 400 KB sono troppo pochi per la maggior parte dei file multimediali.
Come funziona la memorizzazione delle immagini piccole
Codifica l'immagine in base64 e mettila in un attributo Binary. DynamoDB conta la lunghezza in byte grezzi ai fini del tetto di 400 KB per Item, quindi una miniatura o un'icona ci stanno; una foto intera di solito no.
Il pattern consigliato
Per qualsiasi cosa più grande di 400 KB:
- Carica l'immagine su Amazon S3.
- Memorizza in DynamoDB la sua chiave S3, la dimensione, il content type e gli altri metadati.
- Leggi i metadati da DynamoDB, poi recupera l'oggetto da S3.
Nota che DynamoDB e S3 non condividono le transazioni, quindi la tua app deve ripulire gli oggetti orfani in caso di fallimento.
Quanto costa incorporarle
Prendi un caricamento al secondo e dieci visualizzazioni al secondo, on-demand in us-east-1, e fai passare entrambe le forme dal nostro calcolatore dei prezzi:
| Al mese | Immagine da 380 KB incorporata | Puntatore da 119 byte |
|---|---|---|
| Scritture | 624,15 $ | 1,64 $ |
| Letture (coerenza eventuale) | 156,04 $ | 1,64 $ |
| Totale richieste | 780,19 $ | 3,29 $ |
Lo stesso traffico costa 238 volte tanto, e a farlo è tutto l'arrotondamento della capacità. Un'unità di scrittura copre 1 KB, quindi l'immagine ne fattura 380 dove il puntatore ne fattura 1. Le letture arrotondano a 4 KB, quindi ogni lettura a coerenza eventuale dell'immagine costa 47,5 unità di lettura contro 0,5.
Lo storage si somma sopra a tutto questo. Un caricamento da 380 KB al secondo aggiunge 952 GB al mese, che sono 238,09 $ ai 0,25 $ per GB-mese di DynamoDB o 21,90 $ ai $0.023 di S3 Standard, e i caricamenti del mese successivo ne aggiungono altrettanti.
L'Item puntatore che quelle cifre descrivono è questo, e misura 119 byte:
{
"pk": "IMG#2026-07-28#a1b2c3",
"s3Key": "uploads/2026/07/28/a1b2c3.jpg",
"contentType": "image/jpeg",
"bytes": 389120,
"width": 1920,
"height": 1080,
"uploadedAt": 1785283200
}Approfondisci
Vedi la dimensione massima di un Item e misura gli Item con il calcolatore della dimensione degli Item. Scarica DynoTable per ispezionare gli attributi binari.
Fonti dei prezzi
- Amazon DynamoDB pricing — tariffe di unità di richiesta e storage, sincronizzate nel calcolatore dalla AWS Price List API.
- Amazon S3 pricing — storage S3 Standard, $0.023 per GB-mese per i primi 50 TB in us-east-1 (letto dalla Price List API il 2026-07-28).
Riferimenti
- Best practices for storing large items and attributes in DynamoDB — Amazon DynamoDB Developer Guide
- Supported data types and naming rules in Amazon DynamoDB — Amazon DynamoDB Developer Guide
- Quotas in Amazon DynamoDB — Amazon DynamoDB Developer Guide
Ultima verifica 2026-07-13 rispetto alla documentazione ufficiale AWS collegata sopra.
Costi calcolati il 2026-07-28 con il nostro calcolatore dei prezzi sulle tariffe us-east-1 che sincronizza dalla AWS Price List API. Input: on-demand, 1 scrittura/secondo, 10 letture a coerenza eventuale/secondo, 380 KB contro l'Item da 119 byte qui sopra, free tier disattivato.