Assegnazione di nome e riferimento a contenitori, BLOB e metadati

In questo argomento viene illustrato come denominare e fare riferimento a contenitori, BLOB, metadati e snapshot. Un account di archiviazione può contenere zero o più contenitori. Un contenitore contiene proprietà, metadati e zero o più BLOB. Un BLOB è qualsiasi entità singola formata da dati binari, proprietà e metadati.

Nomi di risorsa

L'URI che fa riferimento a un contenitore o un BLOB deve essere univoco. Poiché ogni nome di account è univoco, due account possono avere contenitori con lo stesso nome. Tuttavia, in un determinato account di archiviazione, ogni contenitore deve avere un nome univoco. Ogni BLOB all'interno di un determinato contenitore deve avere un nome univoco in tale contenitore.

Se si tenta di creare un contenitore o un BLOB con un nome che viola le regole di denominazione, la richiesta avrà esito negativo e verrà restituito il codice di stato 400 (Richiesta non valida).

Importante

I nomi di BLOB e contenitori vengono passati al servizio BLOB all'interno di un URL. Alcuni caratteri devono essere codificati in percentuale per essere visualizzati nell'URL, tramite UTF-8 (scelta consigliata) o Multibyte Character Set. Questa codifica si verifica automaticamente quando si usano le librerie client Archiviazione di Azure. Tuttavia, alcuni caratteri specifici non sono validi nei percorsi URL anche se codificati. Questi caratteri non possono essere presenti nei nomi di BLOB o contenitori. Gli elementi di codice come \uE000, validi nei nomi di file NTFS, non sono caratteri Unicode validi, pertanto non possono essere utilizzati. Inoltre, anche alcuni caratteri ASCII o Unicode, come i caratteri di controllo (da 0x00 a 0x1F, \u0081 e così via), non sono consentiti. Per le regole che regolano le stringhe Unicode in HTTP/1.1, vedere RFC 2616, Sezione 2.2: Regole di base e RFC 3987.

Nomi di contenitori

Il nome di un contenitore deve essere un nome DNS valido, in conformità con le regole di denominazione seguenti:

  • I nomi dei contenitori devono iniziare o terminare con una lettera o un numero e possono contenere solo lettere, numeri e il carattere trattino (-).

  • Ciascun carattere trattino (-) deve essere immediatamente preceduto e seguito da una lettera o un numero: nei nomi dei contenitori non sono consentiti trattini consecutivi.

  • Tutte le lettere in un nome di contenitore deve essere composto solo da minuscole.

  • La lunghezza dei nomi dei contenitori deve essere compresa tra 3 e 63 caratteri.

Nomi di BLOB

Un nome di BLOB deve essere conforme alle seguenti regole di denominazione:

  • Un nome di BLOB può contenere qualsiasi combinazione di caratteri.

  • Un nome BLOB deve avere una lunghezza di almeno un carattere e non può contenere più di 1.024 caratteri, per i BLOB in Archiviazione di Azure.

    L'emulatore Archiviazione di Azure supporta i nomi dei BLOB fino a 256 caratteri. Per altre informazioni, vedere Usare l'emulatore di archiviazione di Azure per lo sviluppo e il test.

  • Nei nomi di BLOB viene fatta distinzione tra maiuscole e minuscole.

  • I caratteri URL riservati devono essere preceduti da una sequenza di escape.

  • Il numero di segmenti del percorso che includono il nome BLOB non può essere superiore a 254. Un segmento di percorso è la stringa tra caratteri delimitatori consecutivi (ad esempio, la barra '/') che corrisponde al nome di una directory virtuale.

Nota

Evitare nomi di BLOB che terminano con un punto (.), una barra (/), o una sequenza o una combinazione dei due. Nessun segmento di percorso deve terminare con un punto (.).

Il servizio BLOB è basato su uno schema di archiviazione lineare, non gerarchico. Tuttavia, è possibile specificare un delimitatore carattere o stringa in un nome di BLOB per creare una gerarchia virtuale. Ad esempio, nell'elenco seguente sono riportati nomi di BLOB validi e univoci. Si noti che una stringa può essere valida sia come nome di BLOB che come nome di directory virtuale nello stesso contenitore:

  • /a

  • /a.txt

  • /a/b

  • /a/b.txt

Il carattere delimitatore è utile nell'enumerazione di BLOB.

Nomi di metadati

I metadati per una risorsa contenitore o BLOB sono archiviati come coppie nome-valore associate alla risorsa. I nomi dei metadati devono rispettare le regole di denominazione per gli identificatori C#.

Si noti che i nomi dei metadati mantengono la distinzione tra maiuscole e minuscole con cui sono stati creati, ma quando vengono impostati o letti tale distinzione è irrilevante. Se due o più intestazioni dei metadati con lo stesso nome vengono inviate per una risorsa, il servizio BLOB restituisce il codice di stato 400 (Richiesta non valida).

Sintassi dell'URI della risorsa

Ogni risorsa ha un URI di base corrispondente, che fa riferimento alla risorsa stessa.

Per l'account di archiviazione, l'URI di base include solo il nome dell'account:

https://myaccount.blob.core.windows.net

Per un contenitore, l'URI di base include il nome dell'account e il nome del contenitore:

https://myaccount.blob.core.windows.net/mycontainer

Per un BLOB, l'URI di base include il nome dell'account, il nome del contenitore e il nome del BLOB:

https://myaccount.blob.core.windows.net/mycontainer/myblob

Un account di archiviazione può avere un contenitore radice, un contenitore predefinito che può essere omesso dall'URI. È possibile fare riferimento a un BLOB nel contenitore radice senza assegnare un nome al contenitore oppure fare riferimento al contenitore radice in modo esplicito tramite il relativo nome ($root). Per altre informazioni , vedere Uso del contenitore radice . Gli URI seguenti fanno riferimento a un BLOB nel contenitore radice:

https://myaccount.blob.core.windows.net/myblob  
https://myaccount.blob.core.windows.net/$root/myblob  

Snapshot di BLOB

Uno snapshot è una versione di sola lettura di un BLOB archiviato così com'era alla creazione dello snapshot. È possibile utilizzare gli snapshot per creare un backup o un checkpoint di un BLOB. Un nome di BLOB di snapshot include l'URI del BLOB di base e un valore di data e ora che indica quando è stato creato lo snapshot.

Si supponga, ad esempio, che un BLOB abbia l'URI seguente:

https://myaccount.blob.core.windows.net/mycontainer/myblob

L'URI per uno snapshot del BLOB ha il formato seguente:

https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>

Vedi anche