Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Microsoft Azure Blob Storage umožňuje ukládat velké objemy nestrukturovaných dat objektů. Úložiště objektů blob můžete použít ke shromažďování nebo zveřejnění médií, obsahu nebo dat aplikací pro uživatele. Protože všechna data typu blob jsou uložená v úložných kontejnerech, je nutné vytvořit úložný kontejner, abyste mohli začít nahrávat data. Další informace o úložišti objektů blob najdete v tématu Úvod do služby Azure Blob Storage.
Azure CLI je prostředí příkazového řádku Azure pro různé platformy pro správu prostředků Azure. Můžete ho používat ve svém prohlížeči prostřednictvím služby Azure Cloud Shell. Můžete ho také nainstalovat do systému macOS, Linux nebo Windows a spustit ho místně z příkazového řádku.
V tomto článku s postupy se naučíte používat Azure CLI s Bashem k práci s objekty kontejneru.
Požadavky
Pro přístup ke službě Azure Storage budete potřebovat předplatné Azure. Pokud ještě nemáte předplatné, vytvořte si před zahájením bezplatný účet .
Veškerý přístup ke službě Azure Storage probíhá prostřednictvím účtu úložiště. Pro účely tohoto rychlého startu vytvořte účet úložiště pomocí webu Azure Portal, Azure PowerShellu nebo Azure CLI. Nápovědu k vytvoření účtu úložiště najdete v tématu Vytvoření účtu úložiště.
Příprava prostředí pro rozhraní příkazového řádku Azure
Použijte prostředí Bash v Azure Cloud Shellu. Další informace najdete v tématu Začínáme s Azure Cloud Shellem.
Pokud chcete spouštět referenční příkazy CLI lokálně, nainstalujte Azure CLI. Pokud používáte Windows nebo macOS, zvažte spuštění Azure CLI v kontejneru Docker. Pro více informací, viz Jak spustit Azure CLI v Docker kontejneru.
Pokud používáte místní instalaci, přihlaste se k Azure CLI pomocí příkazu az login. Chcete-li dokončit proces ověřování, postupujte podle kroků zobrazených ve vašem terminálu. Další možnosti přihlášení najdete v tématu Ověřování v Azure pomocí Azure CLI.
Když budete vyzváni, nainstalujte rozšíření Azure CLI při prvním použití. Další informace o rozšířeních najdete v tématu Použití a správa rozšíření pomocí Azure CLI.
Spusťte az version, abyste zjistili verzi a závislé knihovny, které jsou nainstalovány. Pokud chcete upgradovat na nejnovější verzi, spusťte az upgrade.
- Vždy je vhodné nainstalovat nejnovější verzi Azure CLI. Pokud používáte Azure Cloud Shell, je už nainstalovaná nejnovější verze.
Autorizujte přístup k úložišti Blob.
Přístup k úložišti objektů blob můžete autorizovat z Azure CLI pomocí přihlašovacích údajů Microsoft Entra nebo pomocí přístupového klíče účtu úložiště. Doporučuje se používat přihlašovací údaje Microsoft Entra a příklady tohoto článku používají výhradně ID Microsoft Entra.
Příkazy Azure CLI pro operace s daty v úložišti objektů blob podporují --auth-mode parametr, který umožňuje určit, jak autorizovat danou operaci. Nastavte parametr --auth-mode na login k autorizaci pomocí přihlašovacích údajů Microsoft Entra. Další informace najdete v tématu Autorizace přístupu k datům objektů blob nebo front pomocí Azure CLI.
Spuštěním login příkazu otevřete prohlížeč a připojte se k předplatnému Azure.
az login
Vytvoření kontejneru
Pokud chcete vytvořit kontejner pomocí Azure CLI, zavolejte příkaz az storage container create . Následující příklad znázorňuje tři možnosti pro vytvoření kontejnerů objektů blob pomocí az storage container create příkazu. První přístup vytvoří jeden kontejner, zatímco zbývající dva přístupy používají skriptovací operace Bash k automatizaci vytváření kontejnerů.
Pokud chcete tento příklad použít, zadejte hodnoty proměnných a ujistěte se, že jste se přihlásili. Nezapomeňte nahradit zástupné hodnoty v hranatých závorkách vlastními hodnotami.
#!/bin/bash
storageAccount="<storage-account>"
containerName="demo-container-1"
containerPrefix="demo-container-"
# Approach 1: Create a container
az storage container create \
--name $containerName \
--account-name $storageAccount \
--auth-mode login
# Approach 2: Create containers with a loop
for value in {2..5}
do
az storage container create \
--name $containerPrefix$value \
--account-name $storageAccount \
--auth-mode login
done
# Approach 3: Create containers by splitting multiple values
containerList="${containerPrefix}6 ${containerPrefix}7 ${containerPrefix}8"
for container in $containerList
do
az storage container create \
--name $container \
--account-name $storageAccount \
--auth-mode login
done
Zobrazit seznam kontejnerů
Pomocí příkazu az storage container list načtěte seznam kontejnerů úložiště. Pokud chcete vrátit seznam kontejnerů, jejichž názvy začínají daným řetězcem znaků, předejte řetězec jako hodnotu parametru --prefix .
Parametr --num-results lze použít k omezení počtu kontejnerů vrácených požadavkem. Azure Storage omezuje počet kontejnerů vrácených jednou operací výpisu na 5 000. Tento limit zajišťuje načtení spravovatelných objemů dat. Pokud počet vrácených kontejnerů překročí --num-results hodnotu nebo limit služby, vrátí se token pro pokračování. Tento token umožňuje použít více požadavků k načtení libovolného počtu kontejnerů.
Pomocí parametru --query můžete také spustit dotaz JMESPath na výsledky příkazů. JMESPath je dotazovací jazyk JSON, který umožňuje vybrat a upravit data vrácená z výstupu rozhraní příkazového řádku. Před formátováním se dotazy spouštějí ve výstupu JSON. Další informace najdete v tématu Dotazování výstupu příkazu Azure CLI pomocí dotazu JMESPath.
Následující příklad nejprve uvádí maximální počet kontejnerů (s výhradou limitu služby). cs-CZ: Dále vypíše tři kontejnery, jejichž názvy začínají předponou container- zadáním hodnot pro parametry --num-results a --prefix. Nakonec se jeden kontejner zobrazí zadáním známého názvu kontejneru parametru --prefix .
Přečtěte si další informace o az storage container list.
#!/bin/bash
storageAccount="<storage-account>"
containerPrefix="demo-container-"
containerName="demo-container-1"
numResults="3"
# Approach 1: List maximum containers
az storage container list \
--account-name $storageAccount \
--auth-mode login
# Approach 2: List a defined number of named containers
az storage container list \
--prefix $containerPrefix \
--num-results $numResults \
--account-name $storageAccount \
--auth-mode login
# Approach 3: List an individual container
az storage container list \
--prefix $containerPrefix \
--query "[?name=='$containerName']" \
--account-name $storageAccount \
--auth-mode login
Čtení vlastností kontejneru a metadat
Kontejner zveřejňuje systémové vlastnosti i uživatelsky definovaná metadata. Systémové vlastnosti jsou na každém datovém úložišti blobů. Některé vlastnosti jsou jen pro čtení, zatímco jiné je možné číst i upravovat. Pod povrchem se některé systémové vlastnosti mapují na určité standardní hlavičky HTTP.
Uživatelsky definovaná metadata se skládají z jednoho nebo více dvojic název-hodnota, které zadáte pro prostředek úložiště objektů blob. Metadata můžete použít k uložení dalších hodnot k prostředku. Hodnoty metadat jsou určené jenom pro vaše vlastní účely a nemají vliv na chování prostředku.
Vlastnosti kontejneru
Pokud chcete zobrazit vlastnosti kontejneru pomocí Azure CLI, zavolejte příkaz az storage container show .
V následujícím příkladu první přístup zobrazí vlastnosti jednoho pojmenovaného kontejneru. Následně načte všechny kontejnery s předponou demo-container- a iteruje je a zobrazí jejich vlastnosti. Nezapomeňte nahradit zástupné hodnoty vlastními hodnotami.
#!/bin/bash
storageAccount="<storage-account>"
containerPrefix="demo-container-"
containerName="demo-container-1"
# Show a named container's properties
az storage container show \
--name $containerName \
--account-name $storageAccount \
--auth-mode login
# List several containers and show their properties
containerList=$(az storage container list \
--query "[].name" \
--prefix $containerPrefix \
--account-name $storageAccount \
--auth-mode login \
--output tsv)
for row in $containerList
do
tmpRow=$(echo $row | sed -e 's/\r//g')
az storage container show --name $tmpRow --account-name $storageAccount --auth-mode login
done
Čtení a zápis metadat kontejneru
Uživatelé, kteří mají v účtu úložiště mnoho tisíc objektů, můžou rychle vyhledat konkrétní kontejnery na základě jejich metadat. Ke čtení metadat použijete az storage container metadata show příkaz. Pokud chcete aktualizovat metadata, budete muset volat az storage container metadata update příkaz. Metoda přijímá pouze páry klíč-hodnota oddělené mezerami. Další informace najdete v dokumentaci k metadatem kontejneru az storage .
První příklad níže aktualizuje a pak načte metadata pojmenovaného kontejneru. Druhý příklad iteruje seznam kontejnerů odpovídajících hodnotě -prefix . Kontejnery s názvy obsahujícími sudá čísla mají svá metadata nastavená s hodnotami obsaženými v proměnné metadat .
#!/bin/bash
storageAccount="<storage-account>"
containerName="demo-container-1"
containerPrefix="demo-container-"
# Create metadata string
metadata="key=value pie=delicious"
# Update named container metadata
az storage container metadata update \
--name $containerName \
--metadata $metadata \
--account-name $storageAccount \
--auth-mode login
# Display metadata
az storage container metadata show \
--name $containerName \
--account-name $storageAccount \
--auth-mode login
# Get list of containers
containerList=$(az storage container list \
--query "[].name" \
--prefix $containerPrefix \
--account-name $storageAccount \
--auth-mode login \
--output tsv)
# Update and display metadata
for row in $containerList
do
#Get the container's number
tmpName=$(echo $row | sed -e 's/\r//g')
if [ `expr ${tmpName: ${#containerPrefix}} % 2` == 0 ]
then
az storage container metadata update \
--name $tmpName \
--metadata $metadata \
--account-name $storageAccount \
--auth-mode login
echo $tmpName
az storage container metadata show \
--name $tmpName \
--account-name $storageAccount \
--auth-mode login
fi
done
Odstranění kontejnerů
V závislosti na vašem případu použití můžete pomocí příkazu odstranit jeden kontejner nebo skupinu kontejnerů az storage container delete . Při odstraňování seznamu kontejnerů budete muset použít podmíněné operace, jak je znázorněno v následujících příkladech.
Výstraha
Spuštěním následujících příkladů můžete trvale odstranit kontejnery a objekty blob. Microsoft doporučuje povolit měkké odstranění kontejneru, aby ochránil kontejnery a blobs před náhodným odstraněním. Další informace najdete v Měkké odstranění kontejnerů.
#!/bin/bash
storageAccount="<storage-account>"
containerName="demo-container-1"
containerPrefix="demo-container-"
# Delete a single named container
az storage container delete \
--name $containerName \
--account-name $storageAccount \
--auth-mode login
# Delete containers by iterating a loop
list=$(az storage container list \
--query "[].name" \
--prefix $containerPrefix \
--account-name $storageAccount \
--auth-mode login \
--output tsv)
for row in $list
do
tmpName=$(echo $row | sed -e 's/\r//g')
az storage container delete \
--name $tmpName \
--account-name $storageAccount \
--auth-mode login
done
Pokud máte pro účet úložiště povolené měkké odstranění kontejneru, můžete obnovit odstraněné kontejnery. Pokud je povolená funkce soft delete pro ochranu dat vašeho účtu úložiště, --include-deleted parametr vrátí kontejnery odstraněné během přidružené doby uchovávání. Tento --include-deleted parametr lze použít pouze k vrácení kontejnerů při použití s parametrem --prefix . Další informace o obnovitelném odstranění najdete v článku Obnovitelné odstranění kontejnerů .
Pomocí následujícího příkladu načtěte seznam kontejnerů odstraněných v přidružené době uchovávání účtu úložiště.
#!/bin/bash
storageAccount="<storage-account>"
containerPrefix="demo-container-"
# Retrieve a list of containers including those recently deleted
az storage container list \
--prefix $containerPrefix \
--include-deleted \
--account-name $storageAccount\
--auth-mode login
Obnovení softwarově odstraněného kontejneru
Jak je uvedeno v části Seznam kontejnerů, můžete na vašem účtu úložiště nakonfigurovat volbu ochrany dat pro měkké smazání. Pokud je tato možnost povolená, je možné obnovit kontejnery odstraněné během přidružené doby uchovávání informací. Než budete moct postupovat podle tohoto příkladu, budete muset povolit obnovitelné odstranění a nakonfigurovat ho alespoň na jednom z vašich účtů úložiště.
Následující příklady vysvětlují, jak obnovit měkce odstraněný kontejner pomocí příkazu az storage container restore. Abyste zajistili, že se obnoví správná verze kontejneru, budete muset zadat hodnoty a --name--version parametry. Pokud číslo verze neznáte, můžete ho pomocí az storage container list příkazu načíst, jak je znázorněno v prvním příkladu. Druhý příklad najde a obnoví všechny odstraněné kontejnery v rámci konkrétního účtu úložiště.
Další informace o možnosti soft delete (měkkého odstranění) dat najdete v článku Soft delete pro kontejnery.
#!/bin/bash
storageAccount="<storage-account>"
containerName="demo-container-1"
# Restore an individual named container
containerVersion=$(az storage container list \
--account-name $storageAccount \
--query "[?name=='$containerName'].[version]" \
--auth-mode login \
--output tsv \
--include-deleted | sed -e 's/\r//g')
az storage container restore \
--name $containerName \
--deleted-version $containerVersion \
--account-name $storageAccount \
--auth-mode login
# Restore a list of deleted containers
containerList=$(az storage container list \
--account-name $storageAccount \
--include-deleted \
--auth-mode login \
--query "[?deleted].{name:name,version:version}" \
-o json)
for row in $(echo "${containerList}" | jq -c '.[]' )
do
tmpName=$(echo $row | jq -r '.name')
tmpVersion=$(echo $row | jq -r '.version')
az storage container restore \
--account-name $storageAccount \
--name $tmpName \
--deleted-version $tmpVersion \
--auth-mode login
done
Získání sdíleného přístupového podpisu pro kontejner
Sdílený přístupový podpis (SAS) poskytuje delegovaný přístup k prostředkům Azure. Sas poskytuje podrobnou kontrolu nad tím, jak může klient přistupovat k vašim datům. Můžete například určit, které prostředky mají klient k dispozici. Můžete také omezit typy operací, které může klient provádět, a zadat interval, po který je SAS platný.
Sdílený přístupový podpis (SAS) se běžně používá k zajištění dočasného a bezpečného přístupu pro klienta, který by jinak běžně neměl oprávnění. Pokud chcete vygenerovat SAS pro službu nebo účet, budete muset zadat hodnoty pro parametry --account-name a --account-key. Příkladem tohoto scénáře by byla služba, která uživatelům umožňuje číst a zapisovat vlastní data do vašeho účtu úložiště.
Azure Storage podporuje tři typy podpisů pro sdílený přístup: delegovaný uživatel, služba a účet SAS. Další informace o sdílených přístupových podpisech najdete v článku Udělení omezeného přístupu k prostředkům azure Storage pomocí sdílených přístupových podpisů .
Upozornění
Každý klient, který má platný SAS, může přistupovat k datům ve vašem účtu úložiště podle oprávnění daného SAS. Je důležité chránit SAS před škodlivým nebo nezamýšleným použitím. Při distribuci sdíleného přístupového podpisu použijte vlastní uvážení a vytvořte plán pro odvolání ohroženého sdíleného přístupového podpisu.
Následující příklad ukazuje proces konfigurace SAS služby pro konkrétní kontejner pomocí az storage container generate-sas příkazu. Jelikož generuje službu SAS, příklad nejprve načte klíč účtu úložiště, aby ho předal jako hodnotu --account-key.
Příklad nakonfiguruje SAS s časy spuštění a vypršení platnosti a protokolem. Pomocí parametru také určí oprávnění k odstranění, čtení, zápisu a výpisu--permissions v SAS. Můžete odkazovat na úplnou tabulku oprávnění v článku Vytvoření SAS služby .
Zkopírujte a vložte hodnotu SAS tokenu objektu Blob do zabezpečeného umístění. Zobrazí se jenom jednou a po zavření bashe se nedá načíst. Pokud chcete vytvořit adresu URL SAS, připojte token SAS (URI) k adrese URL služby úložiště.
#!/bin/bash
storageAccount="<storage-account>"
containerName="demo-container-1"
permissions="drwl"
expiry=`date -u -d "30 minutes" '+%Y-%m-%dT%H:%MZ'`
accountKey=$(az storage account keys list \
--account-name $storageAccount \
--query "[?permissions == 'FULL'].[value]" \
--output tsv)
accountKey=$( echo $accountKey | cut -d' ' -f1 )
az storage container generate-sas \
--name $containerName \
--https-only \
--permissions dlrw \
--expiry $expiry \
--account-key $accountKey \
--account-name $storageAccount
Poznámka:
Token SAS, který je vrácen pomocí Azure CLI, neobsahuje znak oddělovače ('?') pro řetězec dotazu v URL. Pokud k adrese URL prostředku připojujete token SAS, nezapomeňte před připojením tokenu SAS k adrese URL prostředku připojit znak oddělovače.
Další kroky
V tomto článku s postupy jste se naučili spravovat kontejnery ve službě Blob Storage. Pokud chcete získat další informace o práci s úložištěm objektů blob pomocí Azure CLI, vyberte níže požadovanou možnost.