Interazione MediaStore di AWS Elemental con le cache HTTP - AWSElementale MediaStore

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Interazione MediaStore di AWS Elemental con le cache HTTP

AWS Elemental MediaStore archivia gli oggetti in modo che possano essere memorizzati nella cache in modo corretto ed efficiente da reti di distribuzione di contenuti (CDN) come Amazon CloudFront. Quando un utente finale o una rete CDN recupera un oggetto da MediaStore, il servizio restituisce le intestazioni HTTP che influiscono sul comportamento di memorizzazione nella cache dell'oggetto. Gli standard per il comportamento di memorizzazione nella cache HTTP 1.1 si trovano nella sezione 13 RFC2616. Queste intestazioni sono:

  • ETag (non personalizzabile): l'intestazione del tag entità è un identificatore univoco per la risposta inviata da MediaStore . I CDN e i browser Web conformi agli standard utilizzano questo tag come chiave con cui memorizzare nella cache l'oggetto. MediaStore genera automaticamente unETag per ogni oggetto quando viene caricato. Puoi visualizzare i dettagli di un oggetto per determinarne il valore ETag.

  • Last-Modified(non personalizzabile) - Il valore di questa intestazione indica la data e l'ora in cui l'oggetto è stato modificato. MediaStore genera automaticamente questo valore quando l'oggetto viene caricato.

  • Cache-Control (personalizzabile): il valore di questa intestazione controlla per quanto tempo un oggetto deve essere memorizzato nella cache prima che la CDN controlli se è stato modificato. Puoi impostare questa intestazione su qualsiasi valore quando carichi un oggetto in un MediaStore contenitore utilizzando la CLI o l'API. Il set completo dei valori validi è descritto nella documentazione HTTP/1.1. Se non imposti questo valore quando carichi un oggetto, MediaStore non restituirà questa intestazione quando l'oggetto viene recuperato.

    Un caso di utilizzo comune per l'intestazione Cache-Control consiste nel specificare una durata per la memorizzazione dell'oggetto nella cache. Supponi, ad esempio, di avere un file manifest video che viene spesso sovrascritto da un codificatore. Puoi impostare max-age su 10 per indicare che l'oggetto deve essere memorizzato nella cache per soli 10 secondi. In alternativa supponi di avere un segmento video memorizzato che non verrà mai sovrascritto. Puoi impostare max-age per questo oggetto su 31536000 per memorizzare l'oggetto nella cache per circa 1 anno.

Richieste condizionali

Richieste condizionali a MediaStore

MediaStore risponde in modo identico alle richieste condizionali (utilizzando intestazioni di richiesta comeIf-Modified-Since eIf-None-Match, come descritto in RFC7232) e alle richieste incondizionate. Ciò significa che quando MediaStore riceve unaGetObject richiesta valida, il servizio restituisce sempre l'oggetto anche se il client lo possiede già.

Richieste condizionali alle CDN

Le CDN che forniscono contenuti per conto di MediaStore possono elaborare le richieste condizionali restituendole304 Not Modified, come descritto nella sezione 4.1 di RFC7232. Ciò significa che non è necessario trasferire il contenuto completo dell'oggetto, poiché il richiedente dispone già di un oggetto che corrisponde alla richiesta condizionale.

Le CDN (e altre cache conformi a HTTP/1.1) basano queste decisioni sulle intestazioni ETag e Cache-Control inoltrate dai server di origine. Per controllare la frequenza con cui i CDN interrogano i server di MediaStore origine per gli aggiornamenti degli oggetti recuperati ripetutamente, imposta leCache-Control intestazioni di tali oggetti quando li carichi MediaStore.