Nastavit seznam ACL kontejneru

Operace Set Container ACL nastaví oprávnění pro zadaný kontejner. Oprávnění označují, jestli je možné k objektům blob v kontejneru přistupovat veřejně.

Od verze 2009-09-19 poskytují oprávnění kontejneru následující možnosti pro správu přístupu ke kontejneru:

  • Úplný veřejný přístup pro čtení: Data kontejnerů a objektů blob je možné číst prostřednictvím anonymní žádosti. Klienti můžou vytvořit výčet objektů blob v kontejneru prostřednictvím anonymního požadavku, ale nemůžou vypsat kontejnery v rámci účtu úložiště.

  • Veřejný přístup pro čtení jenom pro objekty blob: Data objektů blob v tomto kontejneru je možné číst prostřednictvím anonymního požadavku, ale data kontejneru nejsou k dispozici. Klienti nemůžou vytvořit výčet objektů blob v kontejneru prostřednictvím anonymní žádosti.

  • Žádný veřejný přístup pro čtení: Data kontejnerů a objektů blob může číst jenom vlastník účtu.

Set Container ACL také nastaví uložené zásady přístupu pro použití se sdílenými přístupovými podpisy. Další informace najdete v tématu Definování uložených zásad přístupu.

Veškerý veřejný přístup ke kontejneru je anonymní, stejně jako přístup prostřednictvím sdíleného přístupového podpisu.

Žádost

Požadavek Set Container ACL může být vytvořen následujícím způsobem. Doporučujeme použít https. Nahraďte myaccount názvem vašeho účtu úložiště:

Metoda Identifikátor URI žádosti Verze PROTOKOLU HTTP
PUT https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=acl HTTP/1.1

Žádost o službu emulovaného úložiště

Při vytváření požadavku na službu emulovaného úložiště zadejte název hostitele emulátoru a port služby Blob Service jako 127.0.0.1:10000a potom název emulovaného účtu úložiště:

Metoda Identifikátor URI žádosti Verze PROTOKOLU HTTP
PUT http://127.0.0.1:10000/devstoreaccount1/mycontainer?restype=container&comp=acl HTTP/1.1

Další informace najdete v tématu Použití emulátoru Azurite pro místní vývoj služby Azure Storage.

Parametry identifikátoru URI

V identifikátoru URI požadavku můžete zadat následující další parametry:

Parametr Popis
timeout Nepovinný parametr. Parametr timeout je vyjádřen v sekundách. Další informace najdete v tématu Nastavení časových limitů pro operace služby Blob Service.

Hlavičky požadavku

Požadované a volitelné hlavičky požadavků jsou popsané v následující tabulce:

Hlavička požadavku Popis
Authorization Povinná hodnota. Určuje schéma autorizace, název účtu a podpis. Další informace najdete v tématu Autorizace požadavků do služby Azure Storage.
Date nebo x-ms-date Povinná hodnota. Určuje formát UTC (Coordinated Universal Time). Další informace najdete v tématu Autorizace požadavků do služby Azure Storage.
x-ms-version Nepovinný parametr. Určuje verzi operace, která se má použít pro tento požadavek. Další informace najdete v tématu Správa verzí pro služby Azure Storage.
x-ms-blob-public-access Nepovinný parametr. Určuje, jestli se k datům v kontejneru může přistupovat veřejně, a úroveň přístupu. Mezi možné hodnoty patří:

- container: Určuje úplný veřejný přístup pro čtení pro data kontejnerů a objektů blob. Klienti můžou vytvořit výčet objektů blob v kontejneru prostřednictvím anonymního požadavku, ale nemůžou vypsat kontejnery v rámci účtu úložiště.
- blob: Určuje veřejný přístup pro čtení pro objekty blob. Data objektů blob v tomto kontejneru je možné číst prostřednictvím anonymního požadavku, ale data kontejneru nejsou k dispozici. Klienti nemůžou vytvořit výčet objektů blob v kontejneru prostřednictvím anonymní žádosti.

Pokud tato hlavička není součástí požadavku, jsou data kontejneru pro vlastníka účtu soukromá.

Mějte na paměti, že nastavení veřejného přístupu pro kontejner v účtu Azure Premium Storage není povolené.
x-ms-lease-id: <ID> Volitelné, verze 2012-02-12 a novější. Pokud je zadaný, bude úspěšný pouze v případě, Set Container ACL že je zapůjčení kontejneru aktivní a odpovídá tomuto ID. Pokud neexistuje aktivní zapůjčení nebo se ID neshoduje, vrátí se 412 (Předběžná podmínka selhala).
x-ms-client-request-id Nepovinný parametr. Poskytuje klientem vygenerovanou neprůselnou hodnotu s limitem počtu znaků 1 kibibajt (KiB), který je zaznamenán v protokolech při konfiguraci protokolování. Důrazně doporučujeme použít tuto hlavičku ke korelaci aktivit na straně klienta s požadavky, které server přijímá. Další informace najdete v tématu Monitorování Azure Blob Storage.

Tato operace také podporuje použití podmíněných hlaviček k provedení operace pouze v případě, že je splněna zadaná podmínka. Další informace najdete v tématu Určení podmíněných hlaviček pro operace služby Blob Service.

Text požadavku

Pokud chcete zadat uložené zásady přístupu, zadejte jedinečný identifikátor a zásadu přístupu v textu požadavku pro operaci Set Container ACL .

Element SignedIdentifier obsahuje jedinečný identifikátor, jak je uvedeno v elementu Id , a podrobnosti o zásadách přístupu, jak je uvedeno v elementu AccessPolicy . Maximální délka jedinečného identifikátoru je 64 znaků.

Pole Start a Expiry musí být vyjádřena jako čas UTC a musí být v souladu s platným formátem ISO 8061. Mezi podporované formáty ISO 8061 patří:

  • YYYY-MM-DD
  • YYYY-MM-DDThh:mmTZD
  • YYYY-MM-DDThh:mm:ssTZD
  • YYYY-MM-DDThh:mm:ss.fffffffTZD

Pro část kalendářního data v těchto formátech YYYY je čtyřciferné vyjádření roku, MM je dvouciferné vyjádření měsíce a DD dvouciferné vyjádření dne. Pro časovou část hh je hodinová reprezentace v 24hodinovém zápisu, mm je dvouciferné minutové vyjádření, ss je dvouciferné druhé vyjádření a fffffff je sedmimístné vyjádření milisekund. Označení času T odděluje část řetězce s datem a časem a časového pásma TZD určuje časové pásmo.

<?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>  
  

Ukázkový požadavek

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>  
  

Odpověď

Odpověď obsahuje stavový kód HTTP a sadu hlaviček odpovědi.

Stavový kód

Úspěšná operace vrátí stavový kód 200 (OK).

Další informace o stavových kódech najdete v tématu Stavové kódy a kódy chyb.

Hlavičky odpovědi

Odpověď na tuto operaci obsahuje následující hlavičky. Odpověď může také obsahovat další standardní hlavičky HTTP. Všechny standardní hlavičky odpovídají specifikaci protokolu HTTP/1.1.

Hlavička odpovědi Description
ETag Značka ETag pro kontejner. Pokud je verze požadavku 2011-08-18 nebo novější, je hodnota ETag uzavřena v uvozovkách.
Last-Modified Vrátí datum a čas poslední změny kontejneru. Formát data se řídí dokumentem RFC 1123. Další informace najdete v tématu Reprezentace hodnot data a času v záhlavích.

Jakákoli operace, která upraví kontejner nebo jeho vlastnosti nebo metadata, aktualizuje čas poslední změny, včetně nastavení oprávnění kontejneru. Operace s objekty blob nemají vliv na čas poslední změny kontejneru.
x-ms-request-id Jedinečně identifikuje požadavek, který byl proveden, a lze ho použít k řešení potíží s požadavkem. Další informace najdete v tématu Řešení potíží s operacemi rozhraní API.
x-ms-version Označuje verzi služby Blob Service, která se použila ke spuštění požadavku. Tato hlavička se vrátí pro požadavky provedené proti verzi 2009-09-19 a novější.
Date Hodnota data a času UTC vygenerovaná službou, která označuje čas, kdy byla odpověď inicializována.
x-ms-client-request-id Dá se použít k řešení potíží s požadavky a odpovídajícími odpověďmi. Hodnota této hlavičky se rovná hodnotě x-ms-client-request-id hlavičky, pokud se nachází v požadavku, a hodnota obsahuje maximálně 1 024 viditelných znaků ASCII. Pokud se hlavička x-ms-client-request-id v požadavku nenachází, v odpovědi se nezobrazí.

Ukázková odpověď

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  

Autorizace

Operace Set Container ACL podporuje pouze autorizaci pomocí sdíleného klíče.

Poznámky

Pouze vlastník účtu může přistupovat k prostředkům v konkrétním kontejneru, pokud vlastník neurčené, že prostředky kontejneru jsou k dispozici pro veřejný přístup nastavením oprávnění ke kontejneru, nebo nevystavil sdílený přístupový podpis pro prostředek v rámci kontejneru.

Když nastavíte oprávnění pro kontejner, stávající oprávnění se nahradí. Pokud chcete aktualizovat oprávnění kontejneru, zavolejte metodu Získat seznam ACL kontejneru a načtěte všechny zásady přístupu přidružené ke kontejneru. Upravte zásady přístupu, které chcete změnit, a pak k provedení aktualizace zavolejte s Set Container ACL úplnou sadou dat.

Povolení anonymního veřejného přístupu k datům kontejneru

Pokud chcete povolit anonymní veřejný přístup pro čtení dat kontejneru, zavolejte s Set Container ACL hlavičkou nastavenou x-ms-blob-public-access na container nebo blob. Anonymní přístup zakážete voláním Set Container ACL bez zadání x-ms-blob-public-access záhlaví.

Pokud nastavíte x-ms-blob-public-access na blob, klienti můžou anonymně volat následující operace:

Pokud nastavíte x-ms-blob-public-access na container, klienti můžou anonymně volat následující operace:

Vytvoření zásad přístupu na úrovni kontejneru

Uložené zásady přístupu můžou určovat čas spuštění, čas vypršení platnosti a oprávnění pro sdílené přístupové podpisy, ke kterým jsou přidružené. V závislosti na tom, jak chcete řídit přístup ke kontejneru nebo prostředku objektu blob, můžete zadat všechny tyto parametry v rámci uložených zásad přístupu a vynechat je z adresy URL pro sdílený přístupový podpis. Tímto způsobem můžete chování přidruženého podpisu kdykoli změnit nebo ho odvolat. Nebo můžete zadat jeden nebo více parametrů zásad přístupu v rámci uložených zásad přístupu a ostatní na adrese URL. Nakonec můžete zadat všechny parametry adresy URL. V takovém případě můžete uložené zásady přístupu použít k odvolání podpisu, ale ne ke změně jeho chování. Další informace najdete v tématu Definování uložených zásad přístupu.

Sdílený přístupový podpis a uložené zásady přístupu musí společně obsahovat všechna pole, která jsou nutná k autorizaci podpisu. Pokud některá požadovaná pole chybí, požadavek se nezdaří. Podobně platí, že pokud je v adrese URL sdíleného přístupového podpisu i v uložených zásadách přístupu zadané pole, požadavek selže se stavovým kódem 400 (Chybný požadavek).

Pro jeden kontejner je možné kdykoli nastavit maximálně pět samostatných zásad přístupu. Pokud je v textu požadavku předáno více než pět zásad přístupu, vrátí služba stavový kód 400 (Chybný požadavek).

Sdílený přístupový podpis je možné vystavit pro kontejner nebo objekt blob bez ohledu na to, jestli jsou data kontejneru k dispozici pro anonymní přístup pro čtení. Sdílený přístupový podpis poskytuje větší míru kontroly nad tím, jak, kdy a komu je prostředek přístupný.

Poznámka

Když vytvoříte uložené zásady přístupu pro kontejner, může trvat až 30 sekund, než se zásady projeví. Dokud se zásada neaktivuje, sdílený přístupový podpis přidružený k uloženým zásadám přístupu selže během tohoto intervalu se stavovým kódem 403 (Zakázáno).

Fakturace

Požadavky na ceny můžou pocházet od klientů, kteří používají rozhraní API služby Blob Storage, a to buď přímo prostřednictvím rozhraní REST API služby Blob Storage, nebo z klientské knihovny služby Azure Storage. Za tyto žádosti se účtují poplatky za každou transakci. Typ transakce ovlivňuje způsob účtování za účet. Například transakce čtení se načítají do jiné kategorie fakturace než transakce zápisu. Následující tabulka uvádí kategorii fakturace pro Set Container ACL žádosti založené na typu účtu úložiště:

Operace Typ účtu úložiště Kategorie fakturace
Nastavit seznam ACL kontejneru Objekt blob bloku úrovně Premium
Standard pro obecné účely v2
Další operace
Nastavit seznam ACL kontejneru Standard pro obecné účely v1 Operace zápisu

Informace o cenách pro zadanou kategorii fakturace najdete v tématu Azure Blob Storage Ceny.

Viz také

Omezení přístupu ke kontejnerům a objektům blob
Delegování přístupu pomocí sdíleného přístupového podpisu
Vytvoření a použití sdíleného přístupového podpisu
Definování uložených zásad přístupu
Získání seznamu ACL kontejneru
Autorizace požadavků do Služby Azure Storage
Stavové kódy a kódy chyb
Kódy chyb služby Blob Service