List Containers
L'operazione List Containers
restituisce un elenco dei contenitori nell'account di archiviazione specificato.
Richiesta
È possibile costruire la List Containers
richiesta come indicato di seguito. È consigliato il protocollo HTTPS. Sostituire myaccount con il nome dell'account di archiviazione.
Metodo | URI richiesta | Versione HTTP |
---|---|---|
GET |
https://myaccount.blob.core.windows.net/?comp=list |
HTTP/1.1 |
Si noti che l'URI deve sempre includere la barra (/) per separare il nome host dal percorso e dalle parti di una query dell'URI. Nel caso dell'operazione List Containers
, la parte del percorso dell'URI è vuota.
Richiesta del servizio di archiviazione emulata
Quando si effettua una richiesta sul servizio di archiviazione emulato, specificare il nome host dell'emulatore e Archiviazione BLOB di Azure porta come 127.0.0.1:10000
, seguito dal nome dell'account di archiviazione emulato.
Metodo | URI richiesta | Versione HTTP |
---|---|---|
GET |
http://127.0.0.1:10000/devstoreaccount1?comp=list |
HTTP/1.1 |
Si noti che l'archiviazione emulata supporta solo dimensioni BLOB fino a 2 GiB.
Per altre informazioni, vedere Usare l'emulatore Azurite per lo sviluppo locale di Archiviazione di Azure e Le differenze tra l'emulatore di archiviazione e i servizi di archiviazione di Azure.
Parametri URI
È possibile specificare i parametri aggiuntivi seguenti nell'URI della richiesta.
Parametro | Descrizione |
---|---|
prefix |
Facoltativa. Filtra i risultati per restituire solo contenitori con un nome che inizia con il prefisso specificato. |
marker |
facoltativo. Valore stringa che identifica la parte dell'elenco di contenitori da restituire con l'operazione di presentazione successiva. L'operazione restituisce il NextMarker valore all'interno del corpo della risposta, se l'operazione di presentazione non restituisce tutti i contenitori rimanenti da elencare con la pagina corrente. È possibile usare il NextMarker valore come valore per il marker parametro in una chiamata successiva per richiedere la pagina successiva degli elementi di elenco.Il valore marcatore risulta opaco al client. |
maxresults |
facoltativo. Specifica il numero massimo di contenitori da restituire. Se la richiesta non specifica maxresults o specifica un valore maggiore di 5000, il server restituirà fino a 5000 elementi. Si noti che se l'operazione di presentazione supera un limite di partizione, il servizio restituirà un token di continuazione per recuperare il resto dei risultati. Per questo motivo, è possibile che il servizio restituirà meno risultati rispetto a specificato da maxresults o rispetto al valore predefinito 5000. Se il parametro è impostato su un valore minore o uguale a zero, il server restituisce il codice di stato 400 (richiesta non valida). |
include={metadata,deleted,system} |
facoltativo. Specifica uno o più set di dati da includere nella risposta: - metadata : si noti che i metadati richiesti con questo parametro devono essere archiviati in conformità alle restrizioni di denominazione imposte dalla versione 2009-09-19 dell'archiviazione BLOB. A partire da questa versione, tutti i nomi dei metadati devono rispettare le convenzioni di denominazione per gli identificatori C#.- deleted : versione 2019-12-12 e successiva. Specifica che i contenitori eliminati temporanea devono essere inclusi nella risposta.- system : versione 2020-10-02 e successiva. Specifica se i contenitori di sistema devono essere inclusi nella risposta. L'inclusione di questa opzione elenca i contenitori di sistema, ad esempio $logs e $changefeed . Si noti che i contenitori di sistema specifici restituiti variano in base alle funzionalità del servizio abilitate nell'account di archiviazione. |
timeout |
facoltativo. Il parametro timeout viene espresso in secondi. Per altre informazioni, vedere Impostazione dei timeout per le operazioni di archiviazione BLOB. |
Intestazioni della richiesta
Nella seguente tabella vengono descritte le intestazioni di richiesta obbligatorie e facoltative.
Intestazione della richiesta | Descrizione |
---|---|
Authorization |
Obbligatorio. Specifica lo schema di autorizzazione, il nome dell'account e la firma. Per altre informazioni, vedere Autorizzare le richieste ad Archiviazione di Azure. |
Date o x-ms-date |
Obbligatorio. Specifica la data per la richiesta nel fuso orario UTC (Coordinated Universal Time). Per altre informazioni, vedere Autorizzare le richieste ad Archiviazione di Azure. |
x-ms-version |
Obbligatorio per tutte le richieste autorizzate. Specifica la versione dell'operazione da usare per questa richiesta. Per altre informazioni, vedere Controllo delle versioni per i servizi di archiviazione di Azure. |
x-ms-client-request-id |
facoltativo. Fornisce un valore opaco generato dal client con un limite di caratteri di 1 kibibyte (KiB) registrato nei log quando la registrazione è configurata. È consigliabile usare questa intestazione per correlare le attività lato client con le richieste ricevute dal server. Per altre informazioni, vedere Monitorare Archiviazione BLOB di Azure. |
Testo della richiesta
Nessuno.
Risposta
Nella risposta sono inclusi un codice di stato HTTP, un set di intestazioni di risposta e il corpo della risposta nel formato XML.
Codice stato
Un'operazione completata correttamente restituisce 200 (OK). Per informazioni sui codici di stato, vedere Codici di stato e di errore.
Intestazioni di risposta
Nella risposta per questa operazione sono incluse le intestazioni riportate di seguito; La risposta include anche intestazioni HTTP aggiuntive e standard. Tutte le intestazioni standard sono conformi alla specifica del protocollo HTTP/1.1.
Intestazione risposta | Descrizione |
---|---|
Content-Type |
Intestazione HTTP/1.1 standard. Specifica il formato in cui vengono restituiti i risultati. Attualmente, questo valore è application/xml . |
x-ms-request-id |
Questa intestazione identifica in modo univoco la richiesta effettuata e può essere usata per la risoluzione dei problemi della richiesta. Per altre informazioni, vedere Risoluzione dei problemi relativi alle operazioni api. |
x-ms-version |
Indica la versione dell'archiviazione BLOB usata per eseguire la richiesta. Questa intestazione viene restituita per le richieste effettuate nella versione 2009-09-19 e successive. |
Date |
Valore di data/ora UTC che indica l'ora in cui è stata avviata la risposta. Il servizio genera questo valore. |
x-ms-client-request-id |
È possibile usare questa intestazione per risolvere le richieste e le risposte corrispondenti. Il valore di questa intestazione è uguale al valore dell'intestazione x-ms-client-request-id , se presente nella richiesta. Il valore è al massimo 1024 caratteri ASCII visibili. Se l'intestazione x-ms-client-request-id non è presente nella richiesta, questa intestazione non sarà presente nella risposta. |
Corpo della risposta
Il formato del corpo della risposta è quello indicato di seguito.
<?xml version="1.0" encoding="utf-8"?>
<EnumerationResults ServiceEndpoint="https://myaccount.blob.core.windows.net">
<Prefix>string-value</Prefix>
<Marker>string-value</Marker>
<MaxResults>int-value</MaxResults>
<Containers>
<Container>
<Name>container-name</Name>
<Version>container-version</Version>
<Deleted>true</Deleted>
<Properties>
<Last-Modified>date/time-value</Last-Modified>
<Etag>etag</Etag>
<LeaseStatus>locked | unlocked</LeaseStatus>
<LeaseState>available | leased | expired | breaking | broken</LeaseState>
<LeaseDuration>infinite | fixed</LeaseDuration>
<PublicAccess>container | blob</PublicAccess>
<HasImmutabilityPolicy>true | false</HasImmutabilityPolicy>
<HasLegalHold>true | false</HasLegalHold>
<DeletedTime>datetime</DeletedTime>
<RemainingRetentionDays>no-of-days</RemainingRetentionDays>
</Properties>
<Metadata>
<metadata-name>value</metadata-name>
</Metadata>
</Container>
</Containers>
<NextMarker>marker-value</NextMarker>
</EnumerationResults>
LeaseStatus
, LeaseState
e LeaseDuration
risultano unicamente nella versione 2012-02-12 e successive.
A partire dalla versione 2013-08-15, l'attributo AccountName
per l'elemento EnumerationResults
è stato rinominato in ServiceEndpoint
. Anche l'elemento URL
è stato rimosso dall'elemento Container
. Per le versioni precedenti al 2013-08-15, l'URL del contenitore, come specificato dal URL
campo, non include il restype=container
parametro. Se si utilizza questo valore per effettuare altre richieste nei contenitori enumerati, assicurarsi di aggiungere questo parametro per indicare che il tipo di risorsa è un contenitore.
Gli Prefix
elementi , Marker
e MaxResults
sono presenti solo se vengono specificati nell'URI. L'elemento NextMarker
ha un valore solo se i risultati dell'elenco non sono completati.
L'elemento Metadata
è presente solo se si specifica il include=metadata
parametro nell'URI. Nell'elemento Metadata
il valore di ogni coppia nome-valore è elencato in un elemento corrispondente al nome della coppia.
Se una coppia nome-valore dei metadati viola le restrizioni di denominazione applicate dalla versione 2009-09-19, il corpo della risposta indica il nome problematico all'interno di un x-ms-invalid-name
elemento. Il frammento XML seguente mostra quanto segue:
<Metadata>
<MyMetadata1>first value</MyMetadata1>
<MyMetadata2>second value</MyMetadata2>
<x-ms-invalid-name>invalid-metadata-name</x-ms-invalid-name>
</Metadata>
A partire dalla versione 2016-05-31, le autorizzazioni pubbliche del PublicAccess
contenitore vengono fornite nella proprietà. Indica se i dati nel contenitore possono essere accessibili pubblicamente e il livello di accesso. I valori possibili sono:
-
container
: indica l'accesso in lettura completo per il contenitore e i dati BLOB. I client possono enumerare i BLOB all'interno del contenitore tramite richiesta anonima, ma non possono enumerare i contenitori all'interno dell'account di archiviazione. -
blob
: indica l'accesso in lettura pubblico per i BLOB. I dati BLOB all'interno di questo contenitore possono essere letti tramite richiesta anonima, ma i dati del contenitore non sono disponibili. I client non possono enumerare i BLOB all'interno del contenitore tramite una richiesta anonima.
Se questa proprietà non è specificata nella <properties>
sezione, il contenitore è privato per il proprietario dell'account.
HasImmutabilityPolicy
e HasLegalHold
vengono visualizzati solo nella versione 2017-11-09 e versioni successive.
HasImmutabilityPolicy
è true
se il contenitore ha un criterio di non modificabilità impostato su di esso e false
in caso contrario.
HasLegalHold
è true
se il contenitore ha uno o più contenitori legali e false
in caso contrario.
Nota
A partire dalla versione 2009-09-19, il corpo della risposta per List Containers
restituisce l'ultimo tempo modificato del contenitore, in un elemento denominato Last-Modified
. Nelle versioni precedenti questo elemento è denominato LastModified
.
Gli Version
elementi , , Deleted
DeletedTime
e RemainingRetentiondays
vengono visualizzati solo nella versione 2019-12-12 e versioni successive se si specifica il deleted
valore per il parametro include
di query . Questi elementi vengono visualizzati solo se il contenitore viene eliminato e può essere ripristinato. Gli Version
elementi , , Deleted
DeletedTime
e RemainingRetentiondays
vengono visualizzati solo nella versione 2019-12-12 e successiva se il valore eliminato viene specificato per il include
parametro di query e se il contenitore viene eliminato e idoneo per il ripristino.
Autorizzazione
L'autorizzazione è necessaria quando si chiama qualsiasi operazione di accesso ai dati in Archiviazione di Azure. È possibile autorizzare l'operazione List Containers
come descritto di seguito.
Importante
Microsoft consiglia di usare Microsoft Entra ID con identità gestite per autorizzare le richieste ad Archiviazione di Azure. Microsoft Entra ID offre una maggiore sicurezza e facilità d'uso rispetto all'autorizzazione di chiave condivisa.
Archiviazione di Azure supporta l'uso di Microsoft Entra ID per autorizzare le richieste ai dati BLOB. Con Microsoft Entra ID è possibile usare il controllo degli accessi in base al ruolo di Azure per concedere le autorizzazioni a un'entità di sicurezza. L'entità di sicurezza può essere un utente, un gruppo, un'entità servizio applicazione o un'identità gestita di Azure. L'entità di sicurezza viene autenticata da Microsoft Entra ID per restituire un token OAuth 2.0. Il token può quindi essere usato per autorizzare una richiesta relativa al servizio BLOB.
Per altre informazioni sull'autorizzazione usando Microsoft Entra ID, vedere Autorizzare l'accesso ai BLOB usando Microsoft Entra ID.
Autorizzazioni
Di seguito è riportata l'azione RBAC necessaria per un utente Microsoft Entra, un gruppo, un gruppo, un'identità gestita o un'entità servizio per chiamare l'operazione List Containers
e il ruolo di controllo degli accessi in base al ruolo predefinito di Azure con privilegi minimi che include questa azione:
- Azione controllo degli accessi in base al ruolo di Azure:Microsoft.Storage/storageAccounts/BLOBServices/containers/read (ambito per l'account di archiviazione o versioni successive)
- Ruolo predefinito con privilegi minimi:Collaboratore dati BLOB di archiviazione (con ambito all'account di archiviazione o versioni successive)
Per altre informazioni sull'assegnazione dei ruoli tramite controllo degli accessi in base al ruolo di Azure, vedere Assegnare un ruolo di Azure per l'accesso ai dati BLOB.
Commenti
Se si specifica un valore per il maxresults
parametro e il numero di contenitori da restituire supera questo valore o supera il valore predefinito per maxresults
, il corpo della risposta conterrà l'elemento NextMarker
. Questa operazione viene definita anche token di continuazione.
NextMarker
indica il contenitore successivo da restituire in una richiesta successiva. Per restituire il set successivo di elementi, specificare il valore di NextMarker
per il marker
parametro nell'URI per la richiesta successiva. Si noti che il valore NextMarker
deve essere considerato opaco.
Se l'operazione di presentazione supera un limite di partizione, il servizio restituirà un valore per l'elemento NextMarker
per recuperare il resto dei risultati dalla partizione successiva. Un'operazione di elenco che si estende su più di una partizione genera un set più piccolo di elementi restituiti rispetto a specificato da maxresults
o rispetto all'impostazione predefinita di 5000. L'applicazione deve sempre verificare la presenza dell'elemento NextMarker
quando si esegue un'operazione di presentazione e gestirla di conseguenza.
I contenitori sono elencati in ordine alfabetico nel corpo della risposta.
L'operazione List Containers
scade dopo 30 secondi.
Fatturazione
Le richieste di prezzi possono derivare dai client che usano le API di archiviazione BLOB, direttamente tramite l'API REST dell'archiviazione BLOB o da una libreria client di Archiviazione di Azure. Queste richieste accumulano addebiti per transazione. Il tipo di transazione influisce sul modo in cui viene addebitato l'account. Ad esempio, le transazioni di lettura si accumulano in una categoria di fatturazione diversa rispetto alle transazioni di scrittura. Nella tabella seguente viene illustrata la categoria di fatturazione per List Containers
le richieste in base al tipo di account di archiviazione:
Operazione | Tipo di account di archiviazione | Categoria di fatturazione |
---|---|---|
List Containers | BLOB di blocchi Premium Utilizzo generico v2 Standard Utilizzo generico standard v1 |
Operazioni elenco e Create contenitore |
Per informazioni sui prezzi per la categoria di fatturazione specificata, vedere prezzi Archiviazione BLOB di Azure.
Richiesta di esempio e risposta
L'URI di esempio seguente richiede l'elenco di contenitori per un account, impostando i risultati massimi da restituire per l'operazione iniziale a tre.
GET https://myaccount.blob.core.windows.net/?comp=list&maxresults=3 HTTP/1.1
La richiesta viene inviata con queste intestazioni:
x-ms-version: 2016-05-31
x-ms-date: Wed, 26 Oct 2016 22:08:44 GMT
Authorization: SharedKey myaccount:CY1OP3O3jGFpYFbTCBimLn0Xov0vt0khH/D5Gy0fXvg=
Il codice di stato e le intestazioni della risposta vengono restituiti nel modo seguente:
HTTP/1.1 200 OK
Transfer-Encoding: chunked
Content-Type: application/xml
Date: Wed, 26 Oct 2016 22:08:54 GMT
x-ms-version: 2016-05-31
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
L'XML della risposta per questa richiesta è il seguente. Si noti che l'elemento NextMarker
segue il set di contenitori e include il nome del contenitore successivo da restituire.
<?xml version="1.0" encoding="utf-8"?>
<EnumerationResults ServiceEndpoint="https://myaccount.blob.core.windows.net/">
<MaxResults>3</MaxResults>
<Containers>
<Container>
<Name>audio</Name>
<Properties>
<Last-Modified>Wed, 26 Oct 2016 20:39:39 GMT</Last-Modified>
<Etag>0x8CACB9BD7C6B1B2</Etag>
<PublicAccess>container</PublicAccess>
</Properties>
</Container>
<Container>
<Name>images</Name>
<Properties>
<Last-Modified>Wed, 26 Oct 2016 20:39:39 GMT</Last-Modified>
<Etag>0x8CACB9BD7C1EEEC</Etag>
</Properties>
</Container>
<Container>
<Name>textfiles</Name>
<Properties>
<Last-Modified>Wed, 26 Oct 2016 20:39:39 GMT</Last-Modified>
<Etag>0x8CACB9BD7BACAC3</Etag>
</Properties>
</Container>
</Containers>
<NextMarker>video</NextMarker>
</EnumerationResults>
L'operazione elenco successiva specifica il marcatore nell'URI della richiesta, come illustrato di seguito. Il set successivo di risultati viene restituito, a partire dal contenitore specificato dal marcatore.
https://myaccount.blob.core.windows.net/?comp=list&maxresults=3&marker=video
Vedi anche
Autorizzare le richieste ad Archiviazione di Azure
Stato e codici errore
Codici di errore dell'archiviazione BLOB
Enumerazione delle risorse BLOB
Uso dell'emulatore di Archiviazione di Azure per lo sviluppo e il test
Impostazione dei timeout per le operazioni di archiviazione BLOB