VENDITE: 1-800-867-1389

List Blobs

Aggiornamento: febbraio 2014

Tramite l'operazione List Blobs viene enumerato l'elenco dei Blob nel contenitore specificato.

La richiesta List Blobs può essere costruita nel modo seguente. Si consiglia di utilizzare HTTPS. Sostituire myaccount con il nome dell'account di archiviazione:

 

Metodo URI della richiesta Versione HTTP

GET

https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=list

HTTP/1.1

Quando si effettua una richiesta nel servizio di archiviazione emulato, specificare il nome host dell'emulatore e la porta del servizio Blob come 127.0.0.1:10000, seguiti dal nome dell'account di archiviazione emulato:

 

Metodo URI della richiesta Versione HTTP

GET

http://127.0.0.1:10000/devstoreaccount1/mycontainer?restype=container&comp=list

HTTP/1.1

Per altre informazioni, vedere Uso dell'emulatore di archiviazione di Azure per lo sviluppo e il test.

Nell'URI è possibile specificare i parametri aggiuntivi seguenti.

 

Parametro Descrizione

prefix

Facoltativo. Filtra i risultati in modo che vengano restituiti solo i Blob i cui nomi iniziano con il prefisso specificato.

delimiter

Facoltativo. Quando la richiesta include questo parametro, l'operazione restituisce un elemento BlobPrefix nel corpo della risposta che funge da segnaposto per tutti i Blob i cui nomi iniziano con la stessa sottostringa fino al carattere delimitatore. Il delimitatore può essere un singolo carattere o una stringa.

marker

Facoltativo. Valore stringa che identifica la parte dell'elenco da restituire con l'operazione elenco successiva. L'operazione restituisce un valore marcatore all'interno del corpo della risposta se l'elenco restituito non è completo. Il valore marcatore può essere utilizzato in una chiamata successiva per richiedere il set successivo di elementi dell'elenco.

Il valore marcatore risulta opaco al client.

maxresults

Facoltativo. Specifica il numero massimo di Blob da restituire, inclusi tutti gli elementi BlobPrefix. Se la richiesta non specifica maxresults o specifica un valore maggiore di 5.000, il server restituirà fino a 5.000 elementi.

L'impostazione di maxresults su un valore minore o uguale a zero restituisce il codice di risposta 400 (Richiesta non valida).

include={snapshots,metadata,uncommittedblobs,copy}

Facoltativo. Specifica uno o più set di dati da includere nella risposta:

  • snapshots: specifica che gli snapshot devono essere inclusi nell'enumerazione. Gli snapshot vengono elencati dal meno recente al più recente nella risposta.

  • metadata: specifica che i metadati del Blob vengono restituiti nella risposta.

  • uncommittedblobs: specifica che i Blob di cui sono stati caricati i blocchi, ma di cui non è stato eseguito il commit utilizzando Put Block List, vengono inclusi nella risposta.

  • copy: versione 2012-02-12 e successive. Specifica che i metadati correlati a qualsiasi operazione Copy Blob corrente o precedente devono essere inclusi nella risposta.

Per specificare più di una di queste opzioni nell'URI, è necessario separare ogni opzione con una virgola con codifica URL ("%82").

timeout

Facoltativo. Il parametro timeout viene espresso in secondi. Per altre informazioni, vedere Impostazione di timeout per le operazioni del servizio Blob.

Nella tabella seguente vengono descritte le intestazioni di richiesta obbligatorie e facoltative.

 

Intestazione della richiesta Descrizione

Authorization

Obbligatorio. Specifica lo schema di autenticazione, il nome dell'account e la firma. Per altre informazioni, vedere Autenticazione per i servizi di archiviazione di Azure.

Date o x-ms-date

Obbligatorio. Specifica l'ora UTC (Coordinated Universal Time) per la richiesta. Per altre informazioni, vedere Autenticazione per i servizi di archiviazione di Azure.

x-ms-version

Obbligatoria per tutte le richieste autenticate, facoltativa per le richieste anonime. Specifica la versione dell'operazione da utilizzare 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 KB che viene registrato nei log di analisi quando la registrazione di Analisi archiviazione è abilitata. L'utilizzo di questa intestazione è consigliato per la correlazione tra le attività sul lato client e le richieste ricevute dal server. Per altre informazioni vedere Informazioni sulla registrazione di Analisi archiviazione e l'articolo relativo all'utilizzo di log per tenere traccia delle richiesta di archiviazione nella registrazione di Azure.

Per una richiesta di esempio, vedere Enumerazione di risorse Blob.

Nella risposta sono inclusi un codice di stato HTTP, un set di intestazioni di risposta e il corpo della risposta nel formato XML.

Un'operazione completata correttamente restituisce il codice di stato 200 (OK).

Per informazioni sui codici di stato, vedere Codici ed errori di stato.

Nella risposta per questa operazione sono incluse le intestazioni riportate di seguito; inoltre, possono essere incluse intestazioni HTTP standard aggiuntive. Tutte le intestazioni standard sono conformi alla specifica del protocollo HTTP/1.1.

 

Intestazione della risposta Descrizione

Content-Type

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 utilizzata per risolvere i problemi relativi alla richiesta. Per altre informazioni, vedere Risoluzione dei problemi relativi alle operazioni dell'API.

x-ms-version

Indica la versione del servizio Blob utilizzata per eseguire la richiesta. Questa intestazione viene restituita per le richieste effettuate utilizzando la versione 2009-09-19 e successive.

Questa intestazione viene restituita anche per le richieste anonime senza una versione specificata se il contenitore è stato contrassegnato per l'accesso pubblico utilizzando la versione 2009-09-19 del servizio Blob.

Date

Valore data/ora UTC generato dal servizio che indica l'ora in cui è stata avviata la risposta.

Il formato della risposta XML è il seguente.

Gli elementi Prefix, Marker, MaxResults e Delimiter sono presenti solo se sono stati specificati nell'URI della richiesta. L'elemento NextMarker contiene un valore solo se i risultati dell'elenco non sono completi.

Gli snapshot, i metadati del Blob e i Blob di cui non è stato eseguito il commit vengono inclusi nella risposta solo se sono stati specificati con il parametro include nell'URI della richiesta.

Nella versione 2009-09-19 e successive, le proprietà del Blob sono incapsulate in un elemento Properties.

Nella versione 2013-08-15 e successive l'elemento EnumerationResults contiene un attributo ServiceEndpoint, che specifica l'endpoint Blob e un campo ContainerName, che specifica il nome del contenitore. Nelle versioni precedenti questi due attributi erano associati insieme nel campo ContainerName. Inoltre, nella versione 2013-08-15 e successive, l'elemento Url in Blob è stato rimosso.

<?xml version="1.0" encoding="utf-8"?>
<EnumerationResults ServiceEndpoint="http://myaccount.blob.core.windows.net/"  ContainerName="mycontainer">
  <Prefix>string-value</Prefix>
  <Marker>string-value</Marker>
  <MaxResults>int-value</MaxResults>
  <Delimiter>string-value</Delimiter>
  <Blobs>
    <Blob>
      <Name>blob-name</name>
      <Snapshot>date-time-value</Snapshot>
      <Properties>
        <Last-Modified>date-time-value</Last-Modified>
        <Etag>etag</Etag>
        <Content-Length>size-in-bytes</Content-Length>
        <Content-Type>blob-content-type</Content-Type>
        <Content-Encoding />
        <Content-Language />
        <Content-MD5 />
        <Cache-Control />
        <x-ms-blob-sequence-number>sequence-number</x-ms-blob-sequence-number>
        <BlobType>BlockBlob|PageBlob</BlobType>
        <LeaseStatus>locked|unlocked</LeaseStatus>
        <LeaseState>available | leased | expired | breaking | broken</LeaseState>
        <LeaseDuration>infinite | fixed</LeaseDuration>
        <CopyId>id</CopyId>
        <CopyStatus>pending | success | aborted | failed </CopyStatus>
        <CopySource>source url</CopySource>
        <CopyProgress>bytes copied/bytes total</CopyProgress>
        <CopyCompletionTime>datetime</CopyCompletionTime>
        <CopyStatusDescription>error string</CopyStatusDescription>
      </Properties>
      <Metadata>   
        <Name>value</Name>
      </Metadata>
    </Blob>
    <BlobPrefix>
      <Name>blob-prefix</Name>
    </BlobPrefix>
  </Blobs>
  <NextMarker />
</EnumerationResults>

LeaseState e LeaseDuration compaiono unicamente nella versione 2012-02-12 e successive.

CopyId, CopyStatus, CopySource, CopyProgress, CopyCompletionTime e CopyStatusDescription sono presenti nella versione 2012-02-12 e successive, quando questa operazione include il parametro include={copy}. Questi elementi non sono presenti se questo Blob non è mai stato la destinazione in un'operazione Copy Blob o se è stato modificato dopo un'operazione Copy Blob completata utilizzando Set Blob Properties, Put Blob o Put Block List. Questi elementi non sono presenti con un Blob creato da Copy Blob prima della versione 2012-02-12.

noteNota
A partire dalla versione 2009-09-19, List Blobs restituisce gli elementi ridenominati seguenti nel corpo della risposta:

  • Last-Modified (in precedenza LastModified)

  • Content-Length (in precedenza Size)

  • Content-Type (in precedenza ContentType)

  • Content-Encoding (in precedenza ContentEncoding)

  • Content-Language (in precedenza ContentLanguage)

L'elemento Content-MD5 è presente per i Blob creati con la versione 2009-09-19 e successive. Nella versione 2012-02-12 e successive, il servizio Blob calcola il valore di Content-MD5 quando si carica un Blob utilizzando Put Blob, ma non lo calcola quando si crea un Blob utilizzando Put Block List. È possibile impostare in modo esplicito il valore di Content-MD5 quando si crea il Blob o chiamando le operazioni Put Block List o Set Blob Properties.

Per una risposta di esempio, vedere Enumerazione di risorse Blob.

Se l'elenco di controllo di accesso del contenitore è impostato per consentire l'accesso anonimo al contenitore, qualsiasi client può chiamare questa operazione. In caso contrario, questa operazione può essere chiamata dal proprietario dell'account e da qualsiasi altro utente che utilizza una firma di accesso condiviso con l'autorizzazione a elencare i Blob in un contenitore.

Proprietà del Blob nella risposta

Se è stata effettuata una richiesta per includere nell'enumerazione i Blob di cui non è stato eseguito il commit, si noti che alcune proprietà non vengono impostate finché non viene eseguito il commit, pertanto è possibile che alcune proprietà non vengano restituite nella risposta.

L'elemento x-ms-blob-sequence-number viene restituito solo per i Blob di pagine.

Per i Blob di pagine, il valore restituito nell'elemento Content-Length corrisponde al valore dell'intestazione x-ms-blob-content-length del Blob.

L'elemento Content-MD5 è presente nel corpo della risposta solo se è stato impostato sul Blob utilizzando la versione 2009-09-19 o successive. È possibile impostare la proprietà Content-MD5 quando il Blob viene creato o chiamando Set Blob Properties. Nella versione 2012-02-12 e successive, Put Blob imposta il valore MD5 di un Blob in blocchi anche se la richiesta Put Blob non include un'intestazione MD5.

Metadati nella risposta

L'elemento Metadata è presente solo se il parametro include=metadata è stato specificato nell'URI. Nell'elemento Metadata il valore di ogni coppia nome-valore è elencato in un elemento corrispondente al nome della coppia.

Si noti che i metadati richiesti con questo parametro devono essere archiviati in base alle restrizioni di denominazione imposte dalla versione 2009-09-19 del servizio Blob. A partire da questa versione, i nomi dei metadati devono essere conformi alle convenzioni di denominazione per gli identificatori C#.

Se una coppia nome-valore dei metadati viola le restrizioni di denominazione imposte dalla versione 2009-09-19, il corpo della risposta indica il nome problematico in un elemento x-ms-invalid-name, come illustrato nel frammento XML seguente:


      …
      <Metadata>
        <MyMetadata1>first value</MyMetadata1>
        <MyMetadata2>second value</MyMetadata2>
        <x-ms-invalid-name>invalid-metadata-name</x-ms-invalid-name>
      </Metadata>
      …

Snapshot nella risposta

Gli snapshot sono elencati nella risposta solo se il parametro include=snapshots è stato specificato nell'URI. Gli snapshot elencati nella risposta non includono l'elemento LeaseStatus, in quanto gli snapshot non possono presentare lease attivi.

Se si chiama List Blobs con un delimitatore, non è possibile includere gli snapshot nell'enumerazione. Una richiesta che include entrambi restituisce un errore InvalidQueryParameter (codice di stato HTTP 400 - Richiesta non valida).

Blob di cui non è stato eseguito il commit nella risposta

I Blob di cui non è stato eseguito il commit sono elencati nella risposta solo se il parametro include=uncommittedblobs è stato specificato nell'URI. I Blob di cui non è stato eseguito il commit elencati nella risposta non includono gli elementi seguenti:

  • Last-Modified

  • Etag

  • Content-Type

  • Content-Encoding

  • Content-Language

  • Content-MD5

  • Cache-Control

  • Metadata

Restituzione di set di risultati utilizzando un valore di marcatore

Se si specifica un valore per il parametro maxresults e il numero di Blob da restituire supera questo valore o il valore predefinito per maxresults, il corpo della risposta contiene un elemento NextMarker che indica il Blob successivo da restituire su una richiesta successiva. Per restituire il set successivo di elementi, specificare il valore NextMarker come parametro marcatore nell'URI per la richiesta successiva.

Si noti che il valore NextMarker deve essere considerato opaco.

Utilizzo di un delimitatore per attraversare lo spazio dei nomi del Blob

Il parametro delimiter consente al chiamante di attraversare lo spazio dei nomi del Blob utilizzando un delimitatore configurato dall'utente. In questo modo, è possibile attraversare una gerarchia virtuale di Blob come se si trattasse di un file system. Il delimitatore può essere un singolo carattere o una stringa. Se la richiesta include questo parametro, l'operazione restituisce un elemento BlobPrefix. L'elemento BlobPrefix viene restituito al posto di tutti i Blob i cui nomi iniziano con la stessa sottostringa fino al carattere delimitatore. Il valore dell'elemento BlobPrefix è substring+delimiter, dove substring è la sottostringa comune con cui iniziano uno o più nomi di Blob e delimiter è il valore del parametro delimiter.

È possibile utilizzare il valore di BlobPrefix per effettuare una chiamata successiva per elencare i Blob i cui nomi iniziano con questo prefisso, specificando il valore di BlobPrefix per il parametro prefix nell'URI della richiesta.

Si noti che ogni elemento BlobPrefix ha restituito i conteggi fino al risultato massimo, proprio come ogni elemento Blob.

I Blob sono elencati in ordine alfabetico nel corpo della risposta, con le lettere maiuscole elencate per prime.

Errori di copia in CopyStatusDescription

In CopyStatusDescription sono contenute altre informazioni sull'errore Copy Blob.

  • Quando un tentativo di copia ha esito negativo e il servizio Blob continua a ritentare l'operazione, CopyStatus viene impostato su pendinge il testo CopyStatusDescription descrive l'errore che può essersi verificato durante l'ultimo tentativo di copia.

  • Quando CopyStatus è impostato su failed, il testo CopyStatusDescription descrive l'errore che ha causato l'esito negativo dell'operazione di copia.

Nella tabella seguente vengono descritti i tre campi di ogni valore CopyStatusDescription.

 

Componente Descrizione

Codice di stato HTTP

Numero intero a tre cifre standard che specifica l'errore.

Codice di errore

Parola chiave che descrive l'errore fornita da Azure nell'elemento <ErrorCode>. Se non è presente alcun elemento <ErrorCode>, viene utilizzata una parola chiave contenente il testo dell'errore standard associato al codice di stato HTTP a tre cifre nella specifica HTTP. Vedere Codici di errore comuni dell'API REST.

Informazioni

Descrizione dettagliata dell'errore, tra virgolette.

Nella tabella seguente vengono descritti i valori CopyStatus e CopyStatusDescription degli scenari di errore comuni.

ImportantImportante
Il testo descrittivo mostrato qui può cambiare senza preavviso, anche se la versione non cambia, pertanto non cercare una corrispondenza esatta con questo testo.

 

Scenario Valore di CopyStatus Valore di CopyStatusDescription

Operazione di copia completata correttamente.

esito positivo

vuoto

Operazione di copia interrotta dall'utente prima che venga completata.

aborted

vuoto

Si è verificato un errore durante la lettura dal Blob di origine durante un'operazione di copia, ma verrà effettuato un altro tentativo.

in sospeso

502 Gateway non valido "Errore non irreversibile durante la lettura dell'origine. Verrà effettuato un altro tentativo. Ora dell'errore: <time>"

Si è verificato un errore durante la scrittura nel Blob di destinazione di un'operazione di copia, ma verrà effettuato un altro tentativo.

in sospeso

500 InternalServerError "Errore non irreversibile. Verrà effettuato un altro tentativo. Ora dell'errore: <time>"

Si è verificato un errore irreversibile durante la lettura dal Blob di origine di un'operazione di copia.

non riuscito

404 ResourceNotFound "Copia non riuscita durante la lettura dell'origine".

noteNota
Quando viene segnalato questo errore sottostante, viene restituito ResourceNotFound nell'elenco <ErrorCode>. Se nella risposta non compare alcun elemento <ErrorCode>, viene visualizzata una rappresentazione in forma di stringa standard dello stato HTTP come NotFound.

Il periodo di timeout che limita tutte le operazioni di copia è trascorso. (Il periodo di timeout è attualmente 2 settimane.)

non riuscito

500 OperationCancelled "La copia ha superato il tempo massimo consentito".

Si sono verificati troppi errori durante la lettura dall'origine, pertanto non è stato raggiunto un rapporto minimo di tentativi rispetto alle operazioni completate. (Questo timeout impedisce di effettuare nuovi tentativi su un'origine di scarsa qualità per più di 2 settimane prima di restituire un errore).

non riuscito

500 OperationCancelled "Copia non riuscita durante la lettura dell'origine".

Il documento è risultato utile?
(1500 caratteri rimanenti)
Grazie per i commenti inviati.
Mostra:
© 2014 Microsoft