Esporta (0) Stampa
Espandi tutto

Set Container ACL

Aggiornamento: aprile 2014

Tramite l'operazione Set Container ACL vengono impostate le autorizzazioni per il contenitore specificato. Le autorizzazioni indicano se i Blob di un contenitore sono accessibili pubblicamente.

A partire dalla versione 2009-09-19, le autorizzazioni dei contenitori offrono le opzioni seguenti per gestire l'accesso ai contenitori stessi:

  • Accesso in lettura pubblico completo: i dati del contenitore e i dati BLOB possono essere letti tramite una richiesta anonima. I client possono enumerare i Blob all'interno del contenitore tramite una richiesta anonima, ma non possono enumerare i contenitori all'interno dell'account di archiviazione.

  • Accesso in lettura pubblico solo per i BLOB: i dati BLOB presenti in questo contenitore possono essere letti attraverso una 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.

  • Nessun accesso in lettura pubblico: i dati del contenitore e i dati BLOB possono essere letti solo dal proprietario dell'account.

Set Container ACL consente inoltre di impostare un criterio di accesso archiviato per l'utilizzo con le firme di accesso condiviso. Per altre informazioni, vedere Utilizzare un criterio di accesso archiviato.

L'accesso pubblico al contenitore è anonimo, come lo è quello effettuato attraverso una firma di accesso condiviso.

La richiesta Set Container ACL 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

PUT

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

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

PUT

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

HTTP/1.1

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

Nell'URI della richiesta è possibile specificare i parametri aggiuntivi seguenti.

 

Parametro Descrizione

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

Facoltativo. 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-blob-public-access

Facoltativo. Specifica se i dati nel contenitore sono accessibili pubblicamente e il livello di accesso. I valori possibili includono:

  • container: specifica l'accesso in lettura pubblico completo per i dati del contenitore e del Blob. I client possono enumerare i Blob all'interno del contenitore tramite una richiesta anonima, ma non possono enumerare i contenitori all'interno dell'account di archiviazione.

  • blob: specifica l'accesso in lettura pubblico per i Blob. I dati Blob presenti in questo contenitore possono essere letti attraverso una 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 intestazione non è inclusa nella richiesta, i dati del contenitore risultano privati al proprietario dell'account.

x-ms-lease-id: <ID>

Facoltativa, versione 2012-02-12 e successive. Se specificato, Set Container ACL ha esito positivo solo se il lease del contenitore è attivo e corrisponde a questo ID. In assenza di un lease attivo o se l'ID non corrisponde, viene restituito il codice di stato 412 (Condizione preliminare non riuscita).

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.

Questa operazione supporta l'utilizzo delle intestazioni condizionali per eseguire l'operazione solo se viene soddisfatta una determinata condizione. Per altre informazioni, vedere Specifica di intestazioni condizionali per le operazioni del servizio Blob.

Per specificare criteri di accesso archiviati, specificare un identificatore univoco e criteri di accesso nel corpo della richiesta per l'operazione Set Container ACL.

L'elemento SignedIdentifier contiene l'identificatore univoco, come specificato nell'elemento Id, e i dettagli dei criteri di accesso, come specificato nell'elemento AccessPolicy. La lunghezza massima dell'identificatore univoco è 64 caratteri.

I campi Start e Expiry devono essere espressi come ore UTC ed essere conformi a un formato ISO 8061 valido. Di seguito sono elencati alcuni formati ISO 8061 supportati:

  • YYYY-MM-DD

  • YYYY-MM-DDThh:mmTZD

  • YYYY-MM-DDThh:mm:ssTZD

  • YYYY-MM-DDThh:mm:ss.fffffffTZD

Per la parte relativa alla data di questi formati, YYYY è una rappresentazione dell'anno a quattro cifre, MM è la rappresentazione del mese a due cifre e DD è la rappresentazione del giorno a due cifre. Per la parte relativa all'ora, hh è la rappresentazione dell'ora nel formato 24 ore, mm è la rappresentazione dei minuti a due cifre, ss è la rappresentazione dei secondi a due cifre e fffffff è la rappresentazione dei millisecondi a sette cifre. Un identificatore T separa le parti relative alla data e all'ora della stringa, mentre un identificatore di fuso orario TZD specifica un fuso orario.

<?xml version="1.0" encoding="utf-8"?>
<SignedIdentifiers>
  <SignedIdentifier> 
    <Id>unique-64-character-value</Id>
    <AccessPolicy>
      <Start>start-time</Start>
      <Expiry>expiry-time</Expiry>
      <Permission>abbreviated-permission-list</Permission>
    </AccessPolicy>
  </SignedIdentifier>
</SignedIdentifiers>

Request Syntax:
PUT https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=acl HTTP/1.1

Request Headers:
x-ms-version: 2011-08-18
x-ms-date: Sun, 25 Sep 2011 00:42:49 GMT
x-ms-blob-public-access: container
Authorization: SharedKey myaccount:V47F2tYLS29MmHPhiR8FyiCny9zO5De3kVSF0RYQHmo=

Request Body:
<?xml version="1.0" encoding="utf-8"?>
<SignedIdentifiers>
  <SignedIdentifier> 
    <Id>MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI=</Id>
    <AccessPolicy>
      <Start>2009-09-28T08:49:37.0000000Z</Start>
      <Expiry>2009-09-29T08:49:37.0000000Z</Expiry>
      <Permission>rwd</Permission>
    </AccessPolicy>
  </SignedIdentifier>
</SignedIdentifiers>

Nella risposta sono inclusi un codice di stato HTTP e un set di intestazioni per la risposta.

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

ETag

Valore ETag per il contenitore. Se la versione della richiesta è 2011-08-18 o successive, il valore ETag sarà racchiuso tra virgolette.

Last-Modified

Restituisce la data e l'ora dell'ultima modifica apportata al contenitore. Il formato data è conforme a RFC 1123. Per altre informazioni, vedere Rappresentazione di valori di data e ora nelle intestazioni.

Qualsiasi operazione che comporta modifiche al contenitore o alle relative proprietà o metadati comporta l'aggiornamento dell'ora dell'ultima modifica, inclusa l'impostazione delle autorizzazioni del contenitore. Le operazioni sui Blob non influiscono sull'ora dell'ultima modifica del contenitore.

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 nella versione 2009-09-19 e successive.

Date

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

Response Status:
HTTP/1.1 200 OK

Response Headers:
Transfer-Encoding: chunked
Date: Sun, 25 Sep 2011 22:42:55 GMT
ETag: "0x8CB171613397EAB"
Last-Modified: Sun, 25 Sep 2011 22:42:55 GMT
x-ms-version: 2011-08-18
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0

Solo il proprietario dell'account può chiamare questa operazione.

Solo il proprietario dell'account può accedere alle risorse di un contenitore specifico, a meno che non abbia reso le risorse del contenitore disponibili per l'accesso pubblico impostando le autorizzazioni per il contenitore o non abbia emesso una firma di accesso condiviso per una risorsa del contenitore.

Quando si impostano le autorizzazioni per un contenitore, le autorizzazioni esistenti vengono sostituite. Per aggiornare le autorizzazioni del contenitore, chiamare Get Container ACL per recuperare tutti i criteri di accesso associati al contenitore, modificare i criteri di accesso che si desidera modificare e chiamare Set Container ACL con il set completo di dati per eseguire l'aggiornamento.

Abilitazione dell'accesso pubblico anonimo ai dati del contenitore

Per abilitare l'accesso in lettura pubblico anonimo ai dati del contenitore, chiamare Set Container ACL con l'intestazione x-ms-blob-public-access impostata su container o blob. Per disabilitare l'accesso anonimo, chiamare Set Container ACL senza specificare l'intestazione x-ms-blob-public-access.

Se si imposta x-ms-blob-public-access su blob, i client possono chiamare le operazioni seguenti in modo anonimo:

Se si imposta x-ms-blob-public-access su container, i client possono chiamare le operazioni seguenti in modo anonimo:

Definizione dei criteri di accesso a livello di contenitore

I criteri di accesso archiviati possono specificare l'ora di inizio, l'ora di scadenza e le autorizzazioni per le firme di accesso condiviso a cui sono associati. A seconda di come si desidera controllare l'accesso alla risorsa del contenitore o del Blob, è possibile specificare tutti questi parametri nei criteri di accesso archiviati e ometterli dall'URL per la firma di accesso condiviso. In questo modo, è possibile modificare il comportamento della firma associata in qualsiasi momento, nonché revocarla. In alternativa, è possibile specificare uno o più parametri dei criteri di accesso nei criteri di accesso archiviati e gli altri nell'URL. Infine, è possibile specificare tutti i parametri nell'URL. In questo caso, è possibile utilizzare i criteri di accesso archiviati per revocare la firma, ma non per modificarne il comportamento. Per altre informazioni sulla definizione dei criteri di accesso, vedere Utilizzare un criterio di accesso archiviato.

Insieme, la firma di accesso condiviso e i criteri di accesso archiviati devono includere tutti i campi necessari per autenticare la firma. Se uno o più campi obbligatori sono mancanti, la richiesta avrà esito negativo. Analogamente, se un campo è specificato sia nell'URL della firma di accesso condiviso sia nei criteri di accesso archiviati, la richiesta avrà esito negativo e verrà restituito il codice di stato 400 (Richiesta non valida). Per altre informazioni sui campi che comprendono una firma di accesso condiviso, vedere Creating a Shared Access Signature.

È possibile impostare al massimo cinque criteri di accesso separati per un contenitore specificato. Se nel corpo della richiesta vengono passati più di cinque criteri di accesso, il servizio restituisce il codice di stato 400 (Richiesta non valida).

È possibile emettere una firma di accesso condiviso per un contenitore o un Blob indipendentemente dal fatto che i dati del contenitore siano disponibili o meno per l'accesso in lettura anonimo. Una firma di accesso condiviso consente un maggior controllo su come e quando rendere disponibile una risorsa e su chi deve eseguire tale azione.

noteNota
La creazione di un criterio di accesso archiviato in un contenitore potrebbe richiedere fino a 30 secondi. Durante questo intervallo una firma di accesso condiviso associata ai criteri di accesso archiviati avrà esito negativo e verrà restituito il codice di stato 403 (Accesso negato), finché il criterio non risulterà attivo.

Mostra:
© 2014 Microsoft