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. Se l'account ha uno spazio dei nomi gerarchico, un contenitore può contenere anche zero o più directory e tali directory possono contenere 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).

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 di Archiviazione di Azure. Tuttavia, alcuni caratteri specifici non sono validi nei percorsi URL anche se codificati. Se questi caratteri vengono visualizzati nei nomi di BLOB o contenitori, la richiesta potrebbe non riuscire. Per un elenco di questi caratteri, vedere Caratteri Unicode non consigliati per l'uso nei nomi di contenitori o BLOB.

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 altre 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 segno meno (-).

  • Ogni trattino/meno (-) deve essere immediatamente preceduto e seguito da una lettera o da un numero; i trattini consecutivi non sono consentiti nei nomi dei contenitori.

  • 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 directory

Se l'account ha uno spazio dei nomi gerarchico, un nome di directory deve essere conforme alle regole di denominazione seguenti:

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

  • Un nome di directory deve avere una lunghezza di almeno un carattere e non può contenere più di 1.024 caratteri.

  • I nomi delle directory fanno distinzione tra maiuscole e minuscole.

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

Nota

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

Screenshot della barra rovesciata non consentita.

Nomi di BLOB

Un nome BLOB deve essere conforme alle regole di denominazione seguenti. Queste regole si applicano anche ai BLOB negli account con uno spazio dei nomi gerarchico, se non diversamente specificato.

  • 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 di 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.

  • Esistono limitazioni per il numero di segmenti di percorso che comprendono un nome BLOB. Un segmento di percorso è la stringa tra caratteri delimitatori consecutivi (ad esempio, una barra /) che corrisponde alla directory o alla directory virtuale. Le limitazioni del segmento di percorso seguenti si applicano ai nomi dei BLOB:

    • Se l'account di archiviazione non dispone di spazio dei nomi gerarchico abilitato, il numero di segmenti di percorso che comprendono il nome del BLOB non può superare 254.
    • Se lo spazio dei nomi gerarchico dell'account di archiviazione è abilitato, il numero di segmenti di percorso che comprendono il nome del BLOB non può superare 63 (inclusi i segmenti di percorso per il nome dell'account e il nome del contenitore).

Nota

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

Screenshot della barra non consentita.

Per impostazione predefinita, il servizio BLOB si basa su uno schema di archiviazione flat, non su uno schema 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>

Nella tabella seguente viene fornito un elenco di caratteri Unicode che non sono consigliati per l'uso nei nomi di contenitori o BLOB. Questi caratteri, se usati in combinazione con altri caratteri in questo elenco, potrebbero non riuscire la decodifica UTF-8 o MBCS, causando un errore della richiesta al servizio BLOB.

carattere Unicode
U+0080
U+0082
U+0083
U+0084
U+0085
U+0086
U+0087
U+0088
U+0089
U+008A
U+008B
U+008C
U+008E
U+0091
U+0092
U+0093
U+0094
U+0095
U+0096
U+0097
U+0098
U+0099
U+009A
U+009B
U+009C
U+009E
U+009F
U+FDD1
U+FDD2
U+FDD3
U+FDD4
U+FDD5
U+FDD6
U+FDD7
U+FDD8
U+FDD9
U+FDDA
U+FDDB
U+FDDC
U+FDDE
U+FDDF
U+FDE0
U+FDE1
U+FDE2
U+FDE3
U+FDE4
U+FDE5
U+FDE6
U+FDE7
U+FDE8
U+FDE9
U+FDEA
U+FDEB
U+FDEC
U+FDED
U+FDEE
U+FDEF
U+FFF0
U+FFF1
U+FFF2
U+FFF3
U+FFF4
U+FFF5
U+FFF6
U+FFF7
U+FFF8
U+FFF9
U+FFFA
U+FFFB
U+FFFC
U+FFFD
U+FFFE
U+FFFF
U+1FFFE
U+1FFFF
U+2FFFE
U+2FFFF
U+3FFFE
U+3FFFF
U+5FFFE
U+5FFFF
U+6FFFE
U+6FFFF
U+7FFFE
U+7FFFF
U+9FFFE
U+9FFFF
U+AFFFE
U+AFFFF
U+BFFFE
U+BFFFF
U+DFFFE
U+DFFFF
U+EFFFE
U+EFFFF
U+FFFFE
U+FFFFF

Vedi anche