Esporta (0) Stampa
Espandi tutto

Assegnazione di nome e riferimento a contenitori, Blob e metadati

Aggiornamento: novembre 2014

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.

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).

ImportantImportante
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 viene eseguita automaticamente quando si utilizzano le librerie di Windows Azure .NET o si crea un oggetto Uri che include un nome di Blob o contenitore. 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 controllano le stringhe Unicode in HTTP/1.1, vedere:

Un nome di contenitore deve essere un nome DNS valido, conforme alle seguenti regole di denominazione:

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

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

  3. Tutte le lettere di un nome di contenitore devono essere minuscole.

  4. I nomi di contenitori devono avere una lunghezza compresa tra 3 e 63 caratteri.

Un nome di Blob può contenere qualsiasi combinazione di caratteri, ma i caratteri URL riservati devono essere preceduti da caratteri di escape. Un nome di Blob deve avere una lunghezza di almeno un carattere e non più di 1.024 caratteri. Nei nomi di Blob viene fatta distinzione tra maiuscole e minuscole.

noteNota
Evitare nomi di Blob che terminano con un punto (.), una barra (/), o una sequenza o una combinazione dei due.

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.

I metadati per una risorsa contenitore o Blob sono archiviati come coppie nome-valore associate alla risorsa. I nomi di metadati devono essere conformi alle 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).

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 ulteriori informazioni, vedere Utilizzo del contenitore radice (API REST). 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

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 libreria client .NET può elencare gli snapshot come oggetti CloudBlob quando si chiama ListBlobs con la proprietà BlobListingDetails impostata su Snapshots.

Vedere anche

Mostra:
© 2014 Microsoft