VENDITE: 1-800-867-1389

Informazioni sui Blob in blocchi e sui Blob di pagine

Aggiornamento: maggio 2014

Il servizio di archiviazione offre due tipi Blob, Blob in blocchi e Blob di pagine. Il tipo di Blob viene specificato al momento della creazione del Blob. Dopo avere creato il Blob, non è possibile modificarne il tipo ed è possibile aggiornarlo solo mediante le operazioni appropriate per il tipo di Blob specifico, ad esempio scrivere un blocco o un elenco di blocchi in un Blob in blocchi e scrivere pagine in un Blob di pagine.

Tutti i Blob riflettono subito le modifiche di cui è stato eseguito il commit. Ogni versione del Blob ha un tag univoco, denominato ETag, che è possibile utilizzare con condizioni di accesso per garantire che venga modificata solo un'istanza specifica del Blob.

Qualsiasi Blob può essere associato a un lease per accesso in scrittura esclusivo. Quando un Blob è associato a un lease, solo le chiamate che includono l'ID di lease corrente possono modificare il Blob o i relativi blocchi (per i Blob in blocchi).

Qualsiasi Blob può essere duplicato in uno snapshot. Per ulteriori informazioni sugli snapshot, vedere Creazione di uno snapshot di un Blob.

noteNota
I Blob nell'emulatore di archiviazione di Azure sono limitati a 2 GB.

I Blob in blocchi consentono di caricare in modo efficiente Blob di grandi dimensioni. I Blob in blocchi sono costituiti da blocchi, ognuno dei quali è identificato da uno specifico ID. Per creare o modificare un BLOB in blocchi, è possibile scrivere un set di blocchi ed eseguirne il commit in base ai relativi ID di blocco. Ogni blocco può avere dimensioni diverse, fino a un massimo di 4 MB. Le dimensioni massime per un Blob in blocchi sono 200 GB e un Blob in blocchi non può includere più di 50.000 blocchi. Se si scrive un Blob in blocchi di dimensioni maggiori di 64 MB, è possibile caricarlo interamente con un'unica operazione di scrittura. Il valore massimo predefinito per il caricamento di un singolo blocco è di 32 MB; questo valore può essere impostato tramite la proprietà SingleBlobUploadThresholdInBytes. Quando il caricamento di un Blob in blocchi è superiore al valore di questa proprietà, i client di archiviazione suddividono il file in blocchi. È possibile impostare il numero di thread utilizzati per caricare i blocchi in parallelo tramite la proprietà ParallelOperationThreadCount.

Quando si carica un blocco in un Blob nell'account di archiviazione, esso viene associato al Blob in blocchi specificato, ma non diventa parte del Blob finché non si esegue il commit di un elenco di blocchi che include l'ID del nuovo blocco. Per i nuovi blocchi lo stato è senza commit finché non ne viene eseguito il commit o non vengono rimossi. La scrittura di un blocco non aggiorna l'ora dell'ultima modifica di un Blob esistente.

I Blob in blocchi includono funzionalità che consentono di gestire file di grandi dimensioni nelle reti. Con un Blob in blocchi, è possibile caricare più blocchi in parallelo per ridurre il tempo di caricamento. Ogni blocco può includere un hash MD5 per verificare il trasferimento, in modo da tenere traccia dell'avanzamento del caricamento e inviare di nuovo i blocchi secondo le esigenze. È possibile caricare i blocchi in qualsiasi ordine e determinarne la sequenza nel passaggio finale del commit dell'elenco di blocchi. È anche possibile caricare un nuovo blocco per sostituire un blocco esistente di cui non è stato eseguito il commit dello stesso ID di blocco. Si ha una settimana di tempo per eseguire il commit dei blocchi in un Blob prima che vengano rimossi. Tutti i blocchi di cui non è stato eseguito il commit vengono rimossi anche quando viene eseguita l'operazione di commit di un elenco di blocchi che non li include.

È possibile modificare un Blob in blocchi esistente inserendo, sostituendo o eliminando blocchi esistenti. Dopo aver caricato il blocco o i blocchi modificati, è possibile eseguire il commit di una nuova versione del Blob eseguendo il commit dei nuovi blocchi con i blocchi esistenti che si desidera mantenere tramite una singola operazione di commit. Per inserire lo stesso intervallo di byte in due posizioni diverse del Blob di cui è stato eseguito il commit, è possibile eseguire il commit dello stesso blocco in due posizioni all'interno della stessa operazione di commit. Se un blocco non viene trovato, qualsiasi operazione di commit ha esito negativo, viene restituito un errore e il Blob non viene modificato. Qualsiasi commit di blocco sovrascrive le proprietà e i metadati esistenti del Blob e rimuove tutti i blocchi di cui non è stato eseguito il commit.

Gli ID di blocco sono stringhe di uguale lunghezza all'interno di un Blob. Il codice client di blocco in genere utilizza la codifica Base 64 per normalizzare le stringhe alla stessa lunghezza. Quando si utilizza la codifica Base 64, la stringa precodificata deve essere al massimo di 64 byte. I valori di ID di blocco possono essere duplicati in Blob diversi. Un Blob può contenere fino a 100.000 blocchi di cui non è stato eseguito il commit, ma le dimensioni totali non possono superare i 400 GB.

Se si scrive un blocco per un Blob che non esiste, viene creato un nuovo Blob in blocchi con una lunghezza pari a zero byte. Questo Blob verrà visualizzato negli elenchi che includono Blob di cui non è stato eseguito il commit. Se non si esegue il commit di alcun blocco in questo Blob, esso e i relativi blocchi di cui non è stato eseguito il commit vengono rimossi una settimana dopo l'ultimo caricamento di blocchi riuscito. Anche tutti i blocchi di cui non è stato eseguito il commit vengono rimossi quando viene creato un nuovo Blob con lo stesso nome in un unico passaggio, anziché con un processo di caricamento e commit in due passaggi.

I Blob di pagine sono una raccolta di pagine da 512 byte, ottimizzati per operazioni casuali di lettura e scrittura. Per creare un Blob di pagine, inizializzarlo e specificarne le dimensioni massime. Per aggiungere o aggiornare il contenuto di un Blob di pagine, scrivere una o più pagine specificando un offset e un intervallo allineati entro i limiti di una pagina da 512 byte. Una scrittura in un Blob di pagine può sovrascrivere una sola pagina, alcune pagine o fino a 4 MB del Blob di pagine. Le scritture nei Blob di pagine avvengono sul posto e ne viene immediatamente eseguito il commit nel Blob. Le dimensioni massime per un Blob di pagine sono 1 TB.

Vedere anche

Il documento è risultato utile?
(1500 caratteri rimanenti)
Grazie per i commenti inviati.
Mostra:
© 2014 Microsoft