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 in BLOB o nomi di 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 trattino/meno (-).

  • Ogni carattere trattino/meno (-) deve essere immediatamente preceduto e seguito da una lettera o 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 essere almeno un carattere lungo e non può essere maggiore di 1.024 caratteri.

  • I nomi delle directory sono 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 che dispongono di uno spazio dei nomi gerarchico, a meno che non venga specificato in altro modo.

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

  • Un nome BLOB deve essere almeno un carattere lungo e non può essere maggiore 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 sul numero di segmenti di percorso che comprendono un nome BLOB. Un segmento di percorso è la stringa tra caratteri delimitatori consecutivi ,ad esempio una barra /in avanti , che corrisponde alla directory o alla directory virtuale. Le limitazioni del segmento di percorso seguenti si applicano ai nomi 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 l'account di archiviazione ha abilitato lo spazio dei nomi gerarchico, 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 rovesciata (/), una barra rovesciata (\) o una sequenza o una combinazione dei due. Nessun segmento di percorso deve terminare con un punto (.).

Screenshot della barra in avanti non consentita.

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

La tabella seguente fornisce un elenco di caratteri Unicode non consigliati per l'uso nei nomi di contenitore o BLOB. Questi caratteri, se usati in combinazione con altri caratteri in questo elenco, potrebbero non riuscire a decodificare UTF-8 o MCBS, 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