Denominazione e riferimento a condivisioni, directory, file e metadati

Un account di archiviazione può contenere zero o più condivisioni file di Azure. Una condivisione contiene proprietà, metadati e zero o più file o directory. Una directory contiene proprietà e zero o più file o directory. Un file è qualsiasi entità singola formata da dati binari, proprietà e metadati.

Nomi di risorse

L'URI per fare riferimento a una condivisione, una directory o un file deve essere univoco. All'interno di un determinato account di archiviazione, ogni condivisione deve avere un nome univoco. Anche ogni file all'interno di un determinata condivisione o directory deve avere un nome univoco in tale condivisione o directory.

Se si tenta di creare una condivisione, una directory o un file 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).

Nomi di condivisione

Le regole per i nomi delle condivisioni del servizio File sono più restrittive rispetto a quanto è previsto per il protocollo SMB per i nomi di condivisioni SMB, in modo che i servizi BLOB e File possano condividere convenzioni di denominazione simili per i contenitori e le condivisioni. Le restrizioni di denominazione per le condivisioni sono le seguenti:

  • Un nome di condivisione deve essere un nome DNS valido.
  • I nomi di condivisione devono iniziare con una lettera o un numero e possono contenere solo lettere, numeri e il trattino/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 di condivisione.
  • Tutte le lettere di un nome di condivisione devono essere minuscole.
  • I nomi di condivisioni devono avere una lunghezza compresa tra 3 e 63 caratteri.

La tabella seguente confronta le restrizioni di denominazione per File di Azure e Archiviazione BLOB di Azure:

Denominazione e riferimento a contenitori, BLOB e metadati Restrizioni del nome di condivisione SMB
• Un nome contenitore deve essere un nome DNS valido.
• I nomi dei contenitori devono iniziare con una lettera o un numero e possono contenere solo lettere, numeri e il trattino/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 devono essere minuscole.
• I nomi dei contenitori devono essere lunghi da 3 a 63 caratteri.
• Un nome di condivisione non deve contenere più di 80 caratteri.
• I seguenti caratteri sono illegali in un nome di condivisione: \ / [ ] : ¦ < > + = ; , * ? "
• I caratteri di controllo nell'intervallo 0x00 attraverso 0x1F, inclusi, sono illegali in un nome di condivisione.
• Tutti gli altri caratteri Unicode sono legali.
• I nomi non fanno distinzione tra maiuscole e minuscole.

Nomi di file e directory

File di Azure applica le regole di denominazione seguenti per i nomi di directory e file:

  • Nei nomi di file e directory non viene effettuata distinzione tra maiuscole e minuscole, ma la differenza viene mantenuta.
  • I nomi dei componenti di file e directory non possono essere più lunghi di 255 caratteri.
  • I nomi di directory non possono terminare con il carattere barra (/). Se inserita, verrà automaticamente rimossa.
  • I nomi di file non possono terminare con una barra (/).
  • I caratteri URL riservati devono essere preceduti da una sequenza di escape.
  • I caratteri seguenti non sono consentiti: " \ / : | < > * ?
  • Non sono consentiti caratteri di percorso URL non validi. I punti di codice come \uE000, mentre sono validi nei nomi di file NTFS, non sono caratteri Unicode validi. Inoltre, alcuni caratteri ASCII o Unicode, ad esempio i caratteri di controllo (0x00 a 0x1F), 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.
  • I caratteri Unicode non validi (denominati coppie di surrogati non validi) non sono supportati.
  • I nomi di file seguenti non sono consentiti: LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, PRN, AUX, NUL, CON, CLOCK$, dot character (.) e due caratteri punto (..).
  • A partire dalla versione 2021-12-02, i nomi di directory e file supportano i caratteri U+FFFE e U+FFFF tramite tutte le operazioni. Questi caratteri sono supportati anche tramite protocolli SMB e REST. Le operazioni list Directory e Files eList Handle dovranno gestire in modo speciale questi caratteri, come indicato nella rispettiva documentazione.

Per impostazione predefinita, i caratteri punto (.) alla fine della directory e dei nomi di file negli URL di richiesta vengono ignorati o lasciati.

  • Ad esempio, se viene creato un file denominato file1... , i punti alla fine verranno ignorati e verrà creato un file denominato file1 . Lo stesso vale per le directory nel percorso. Se una richiesta di creazione di file include il percorso \Dir1\Dir2…\File1 , il file verrà creato in \Dir1\Dir2\File1.
  • Tuttavia, a partire dalla versione 2022-11-02, il comportamento predefinito può essere sostituito impostando l'intestazione x-ms-allow-trailing-dot su true nella richiesta URL.
  • Ad esempio, se si vuole creare un file denominato file1... e includere i punti finali, deve essere incluso nell'intestazione x-ms-allow-trailing-dot della richiesta e impostato su .true Lo stesso vale per la creazione di nomi di directory.
  • In caso di richiesta di copia file, se si desidera includere punti finali nel nome del file di origine, l'intestazione x-ms-source-allow-trailing-dot deve essere impostata su true. Per altre informazioni, vedere le opzioni di intestazione disponibili per ogni singola API REST.

La tabella seguente confronta le restrizioni di denominazione per File di Azure e Archiviazione BLOB di Azure:

Denominazione e riferimento a contenitori, BLOB e metadati Restrizioni del nome del protocollo SMB
• Un nome BLOB deve avere una lunghezza di almeno un carattere e non può contenere più di 1.024 caratteri.
• I nomi dei BLOB fanno distinzione tra maiuscole e minuscole.
• I caratteri URL riservati devono essere preceduti correttamente da un carattere di escape.
• I nomi dei BLOB possono terminare con un delimitatore di directory virtuale, ad esempio una barra (/)
• Non sono consentiti caratteri di percorso URL non validi: i punti di codice come \uE000, mentre sono validi nei nomi file NTFS, non sono caratteri Unicode validi. Inoltre, alcuni caratteri ASCII o Unicode, ad esempio i caratteri di controllo (0x00 a 0x1F), 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.
• Un nome di percorso può contenere non più di 32.760 caratteri.
• Ogni componente del nome percorso (file/directory) può contenere non più di 255 caratteri.
• Un nome di percorso è costituito da uno o più componenti del nome percorso separati dal carattere barra indietro (\).
• Il nome del percorso mantiene maiuscole e minuscole e non fa distinzione tra maiuscole e minuscole (due nomi che differiscono solo nel caso non è consentito).
• Non è possibile avere un percorso di directory identico a quello di un percorso di file.
• I seguenti caratteri non sono validi in un nome di componente: \ / : ¦ < > * ? "
• I caratteri di controllo nell'intervallo 0x00 attraverso 0x1F, inclusi, sono illegali in un nome di condivisione.

Nomi di percorso

Un nome di percorso è costituito da uno o più componenti del nome percorso (directory o nome file) separati dal carattere barra (/). Tutti i componenti del nome del percorso diversi dall'ultimo componente del nome percorso indicano le directory. L'ultimo componente del nome di percorso indica una directory o un file. Si applicano le regole di denominazione seguenti:

  • Un nome di percorso può contenere non più di 2.048 caratteri. I singoli componenti nel percorso possono contenere al massimo 255 caratteri.
  • Un nome di percorso è costituito da uno o più componenti del nome del percorso separati dal carattere barra (/).
  • La profondità delle sottodirectory nel percorso non può superare 250.
  • Non è possibile usare lo stesso nome per un file e una directory che condividono la stessa directory padre. Un file e una directory denominati data , ad esempio, non possono esistere nello stesso percorso padre.

Nomi dei metadati

I metadati per una risorsa file o condivisione 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 vengono inviate due o più intestazioni di metadati con lo stesso nome per una risorsa, il servizio File di Azure restituisce il codice di stato 400 (Richiesta non valida).

Sintassi URI 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.file.core.windows.net

Per una condivisione, l'URI di base include il nome dell'account e il nome della condivisione:

https://myaccount.file.core.windows.net/myshare

Per una directory, l'URI di base include il nome dell'account, il nome della condivisione e il percorso della directory:

https://myaccount.file.core.windows.net/myshare/myparentdir/mydir

Per un file, l'URI di base include il nome dell'account, il nome della condivisione e il percorso del file:

https://myaccount.file.core.windows.net/myshare/myfile  
https://myaccount.file.core.windows.net/myshare/mydir/myfile  
https://myaccount.file.core.windows.net/myshare/myparentdir/mydir/myfile  

Vedi anche