Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Usługa Microsoft Azure Blob Storage umożliwia przechowywanie dużych ilości danych obiektów bez struktury. Magazyn obiektów blob służy do zbierania lub uwidaczniania danych multimediów, zawartości lub aplikacji dla użytkowników. Ponieważ wszystkie dane obiektów blob są przechowywane w kontenerach, należy utworzyć kontener pamięci, zanim rozpocznie się przesyłanie danych. Aby dowiedzieć się więcej na temat magazynu obiektów blob, przeczytaj wprowadzenie do usługi Azure Blob Storage.
Azure CLI to wieloplatformowe środowisko wiersza polecenia do zarządzania zasobami Azure. Można używać go w przeglądarce za pośrednictwem usługi Azure Cloud Shell. Można go również zainstalować w systemie macOS, Linux lub Windows i uruchomić go lokalnie z poziomu wiersza polecenia.
W tym artykule dowiesz się, jak używać Azure CLI w połączeniu z powłoką Bash do zarządzania obiektami kontenerowymi.
Wymagania wstępne
Aby uzyskać dostęp do usługi Azure Storage, potrzebujesz subskrypcji platformy Azure. Jeśli nie masz jeszcze subskrypcji, przed rozpoczęciem utwórz bezpłatne konto .
Cały dostęp do usługi Azure Storage odbywa się za pośrednictwem konta magazynowania. Na potrzeby tego szybkiego startu utwórz konto magazynu w portalu Azure, programie Azure PowerShell lub interfejsie wiersza polecenia platformy Azure. Aby uzyskać pomoc dotyczącą tworzenia konta magazynowego, zobacz Tworzenie konta magazynowego.
Przygotuj swoje środowisko dla Azure CLI
Użyj środowiska Bash w Azure Cloud Shell. Aby uzyskać więcej informacji, zobacz Get started with Azure Cloud Shell.
Jeśli wolisz uruchamiać polecenia referencyjne interfejsu wiersza polecenia lokalnie, zainstaluj Azure CLI. Jeśli korzystasz z systemu Windows lub macOS, rozważ uruchomienie Azure CLI w kontenerze Docker. Aby uzyskać więcej informacji, zobacz Jak uruchomić Azure CLI w kontenerze Docker.
Jeśli korzystasz z instalacji lokalnej, zaloguj się do Azure CLI za pomocą polecenia az login. Aby zakończyć proces uwierzytelniania, wykonaj kroki wyświetlane na Twoim terminalu. Aby uzyskać inne opcje logowania, zobacz Uwierzytelnianie na platformie Azure przy użyciu interfejsu wiersza polecenia platformy Azure.
Gdy zostaniesz o to poproszony/a, zainstaluj rozszerzenie Azure CLI przy pierwszym użyciu. Aby uzyskać więcej informacji na temat rozszerzeń, zobacz Używanie rozszerzeń i zarządzanie nimi za pomocą interfejsu wiersza polecenia platformy Azure.
Uruchom az version, aby sprawdzić zainstalowaną wersję i biblioteki zależne. Aby zaktualizować do najnowszej wersji, uruchom az upgrade.
- Zawsze dobrym pomysłem jest zainstalowanie najnowszej wersji interfejsu wiersza polecenia platformy Azure. W przypadku korzystania z usługi Azure Cloud Shell najnowsza wersja jest już zainstalowana.
Autoryzowanie dostępu do usługi Blob Storage
Możesz autoryzować dostęp do Blob storage z poziomu interfejsu wiersza polecenia Azure, korzystając z poświadczeń Microsoft Entra lub klucza dostępu do konta magazynowego. Zaleca się korzystanie z poświadczeń Microsoft Entra, a w przykładach tego artykułu używane jest wyłącznie Microsoft Entra ID.
Polecenia Azure CLI dla operacji danych w usłudze Blob Storage obsługują parametr --auth-mode, który umożliwia określenie sposobu autoryzowania danej operacji. Ustaw parametr --auth-mode na login, aby autoryzować przy użyciu poświadczeń Microsoft Entra. Aby uzyskać więcej informacji, zobacz Autoryzowanie dostępu do danych obiektów blob lub kolejek za pomocą interfejsu wiersza polecenia platformy Azure.
Uruchom polecenie , login aby otworzyć przeglądarkę i połączyć się z subskrypcją platformy Azure.
az login
Tworzenie kontenera
Aby utworzyć kontener za pomocą interfejsu wiersza polecenia platformy Azure, wywołaj polecenie az storage container create. Poniższy przykład ilustruje trzy opcje tworzenia kontenerów obiektów blob przy użyciu polecenia az storage container create. Pierwsze podejście tworzy pojedynczy kontener, podczas gdy pozostałe dwa podejścia używają operacji skryptów powłoki Bash w celu zautomatyzowania tworzenia kontenera.
Aby użyć tego przykładu, podaj wartości zmiennych i upewnij się, że zalogowano się. Pamiętaj, aby zastąpić wartości symboli zastępczych w nawiasach własnymi wartościami.
#!/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
Wyświetlanie listy kontenerów
Użyj polecenia , az storage container list aby pobrać listę kontenerów magazynu. Aby zwrócić listę kontenerów, których nazwy zaczynają się od danego ciągu znaków, przekaż ciąg jako wartość parametru --prefix .
Parametr --num-results może służyć do ograniczania liczby kontenerów zwracanych przez żądanie. Usługa Azure Storage ogranicza liczbę kontenerów zwracanych przez operację listowania do 5000. Ten limit zapewnia pobieranie możliwych do zarządzania ilości danych. Jeśli liczba zwróconych kontenerów przekracza --num-results wartość lub limit usługi, zwracany jest token kontynuacji. Ten token umożliwia pobranie dowolnej liczby kontenerów przy użyciu wielu żądań.
Możesz również użyć parametru --query , aby wykonać zapytanie JMESPath na wynikach poleceń. JMESPath to język zapytań dla formatu JSON, który umożliwia wybieranie i modyfikowanie danych zwracanych z danych wyjściowych interfejsu wiersza polecenia. Zapytania są wykonywane na danych wyjściowych JSON, zanim będzie można je sformatować. Aby uzyskać więcej informacji, zobacz How to query Azure CLI command output using a JMESPath query (Jak wykonywać zapytania dotyczące poleceń interfejsu wiersza polecenia platformy Azure przy użyciu zapytania JMESPath).
W poniższym przykładzie najpierw wymieniono maksymalną liczbę kontenerów (podlega limitowi usługi). Następnie zostanie wyświetlona lista trzech kontenerów, których nazwy zaczynają się od prefiksu kontenera, podając wartości parametrów --num-results i --prefix . Na koniec jeden kontener jest wyświetlany przez podanie znanej nazwy kontenera do parametru --prefix .
Dowiedz się więcej na temat listy kontenerów az storage.
#!/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
Odczytywanie właściwości i metadanych kontenera
Kontener uwidacznia zarówno właściwości systemu, jak i metadane zdefiniowane przez użytkownika. Właściwości systemu istnieją w każdym zasobie pamięci masowej blob. Niektóre właściwości są tylko do odczytu, podczas gdy inne mogą być odczytywane lub ustawiane. Pod osłonami niektóre właściwości systemu są mapowane na standardowe nagłówki HTTP.
Metadane zdefiniowane przez użytkownika składają się z co najmniej jednej pary nazwa-wartość, które określasz dla zasobu przechowywania obiektów blob. Za pomocą metadanych można przechowywać dodatkowe wartości z zasobem. Wartości metadanych są przeznaczone tylko do własnych celów i nie mają wpływu na zachowanie zasobu.
Właściwości kontenera
Aby wyświetlić właściwości kontenera za pomocą interfejsu wiersza polecenia platformy Azure, wywołaj polecenie az storage container show .
W poniższym przykładzie pierwsze podejście wyświetla właściwości pojedynczego nazwanego kontenera. Następnie pobiera wszystkie kontenery z prefiksem demo-container- i iteruje je, wyświetlając ich właściwości. Pamiętaj, aby zastąpić wartości zastępcze własnymi wartościami.
#!/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
Odczytywanie i zapisywanie metadanych kontenera
Użytkownicy, którzy mają wiele tysięcy obiektów w swoim koncie przechowywania, mogą szybko zlokalizować określone kontenery na podstawie ich metadanych. Aby odczytać metadane, użyjesz az storage container metadata show polecenia . Aby zaktualizować metadane, należy wywołać az storage container metadata update polecenie . Metoda akceptuje tylko pary klucz-wartość oddzielone spacją. Aby uzyskać więcej informacji, zobacz dokumentację az storage container metadata .
Pierwszy przykład poniżej aktualizuje, a następnie pobiera metadane nazwanego kontenera. Drugi przykład iteruje listę kontenerów, które pasują do wartości -prefix. Kontenery z nazwami zawierającymi liczby parzystych mają zestaw metadanych z wartościami zawartymi w zmiennej metadanych .
#!/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
Usuwanie kontenerów
W zależności od przypadku użycia można usunąć pojedynczy kontener lub grupę kontenerów za az storage container delete pomocą polecenia . Podczas usuwania listy kontenerów należy użyć operacji warunkowych, jak pokazano w poniższych przykładach.
Ostrzeżenie
Uruchomienie poniższych przykładów może trwale usunąć kontenery i bloby. Microsoft zaleca włączenie miękkiego usuwania kontenerów, aby chronić kontenery i bloby przed przypadkowym usunięciem. Aby uzyskać więcej informacji, zobacz Miękkie usuwanie dla kontenerów.
#!/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
Jeśli masz włączone miękkie usuwanie kontenera dla konta przechowywania, możliwe jest pobranie kontenerów, które zostały usunięte. Jeśli opcja ochrony danych dla miękkiego usuwania konta magazynu jest włączona, parametr --include-deleted zwróci kontenery usunięte w skojarzonym okresie retencji. Parametr --include-deleted może służyć tylko do zwracania kontenerów w przypadku użycia z parametrem --prefix . Aby dowiedzieć się więcej na temat miękkiego usuwania, przeczytaj artykuł Miękkie usuwanie dla kontenerów.
Skorzystaj z poniższego przykładu, aby pobrać listę kontenerów usuniętych w skojarzonym okresie przechowywania konta magazynu.
#!/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
Przywracanie kontenera tymczasowo usuniętego
Jak wspomniano w sekcji Lista kontenerów, możesz skonfigurować opcję ochrony danych przy użyciu miękkiego usuwania w Twoim koncie magazynowym. Po włączeniu można przywrócić kontenery usunięte w skojarzonym okresie przechowywania. Zanim będziesz mógł skorzystać z tego przykładu, musisz włączyć miękkie usuwanie i skonfigurować je na co najmniej jednym z kont magazynowego.
W poniższych przykładach wyjaśniono, jak przywrócić miękko usunięty kontener za pomocą polecenia az storage container restore. Musisz podać wartości parametrów --name i --version , aby upewnić się, że została przywrócona poprawna wersja kontenera. Jeśli nie znasz numeru wersji, możesz użyć az storage container list polecenia , aby pobrać go, jak pokazano w pierwszym przykładzie. Drugi przykład umożliwia znalezienie i przywrócenie wszystkich usuniętych kontenerów na określonym koncie magazynu.
Aby dowiedzieć się więcej na temat opcji ochrony danych poprzez miękkie usuwanie, zapoznaj się z artykułem Miękkie usuwanie dla kontenerów.
#!/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
Uzyskiwanie sygnatury dostępu współdzielonego dla kontenera
Sygnatura dostępu współdzielonego (SAS) zapewnia delegowany dostęp do zasobów platformy Azure. Sygnatura dostępu współdzielonego zapewnia dokładną kontrolę nad tym, w jaki sposób klient może uzyskiwać dostęp do danych. Można na przykład określić, które zasoby są dostępne dla klienta. Można również ograniczyć typy operacji, które klient może wykonać, i określić okres, przez który sygnatura dostępu współdzielonego (SAS) jest prawidłowa.
Sygnatura dostępu współdzielonego jest często używana do zapewnienia tymczasowego i bezpiecznego dostępu do klienta, który normalnie nie ma uprawnień. Aby wygenerować sygnaturę dostępu współdzielonego usługi lub konta, musisz podać wartości parametrów --account-name i --account-key. Przykładem tego scenariusza jest usługa, która umożliwia użytkownikom odczytywanie i zapisywanie ich własnych danych na koncie magazynowym.
Usługa Azure Storage obsługuje trzy typy podpisów wspólnego dostępu: upoważnienie użytkownika, podpis serwisowy i podpis konta. Aby uzyskać więcej informacji na temat sygnatur dostępu współdzielonego, zobacz artykuł Udzielanie ograniczonego dostępu do zasobów usługi Azure Storage przy użyciu sygnatur dostępu współdzielonego .
Ostrzeżenie
Każdy klient, który posiada prawidłową sygnaturę dostępu współdzielonego, może uzyskać dostęp do danych na koncie magazynowym, zgodnie z uprawnieniami tej sygnatury. Ważne jest, aby chronić SAS (Podpis Dostępu Współdzielonego) przed złośliwym lub niezamierzonym użyciem. Użyj uznania w dystrybucji sygnatury dostępu współdzielonego i zaplanuj odwołanie naruszonej sygnatury dostępu współdzielonego.
Poniższy przykład ilustruje proces konfigurowania usługi SAS (Service Shared Access Signature) dla określonego kontenera przy użyciu polecenia az storage container generate-sas. Ponieważ generowany jest token SAS dla usługi, w przykładzie najpierw pobierany jest klucz konta magazynu, który zostanie użyty jako wartość --account-key.
W przykładzie zostanie skonfigurowany Shared Access Signature (SAS) z ustawieniami początkowego czasu, czasu wygaśnięcia oraz protokołem. Określi również uprawnienia do usuwania, odczytu, zapisu i listowania w udostępnionej sygnaturze dostępu (SAS) za pomocą parametru --permissions. Można odnieść się do pełnej tabeli uprawnień w artykule Tworzenie sygnatury usługi SAS.
Skopiuj wartość tokenu SAS obiektu blob i wklej ją w bezpiecznym miejscu. Będzie on wyświetlany tylko raz i nie można go pobrać po zamknięciu powłoki Bash. Aby utworzyć adres URL SAS, dołącz token SAS (URI) do adresu URL usługi magazynu.
#!/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
Uwaga / Notatka
Token SAS zwrócony przez Azure CLI nie zawiera znaku ogranicznika ('?') dla parametrów zapytania URL. Jeśli dołączasz token SAS do adresu URL zasobu, pamiętaj, aby dołączyć znak ogranicznika do adresu URL zasobu przed dołączeniem tokenu SAS.
Dalsze kroki
W tym artykule z instrukcjami przedstawiono sposób zarządzania kontenerami w usłudze Blob Storage. Aby dowiedzieć się więcej na temat pracy z usługą Blob Storage przy użyciu interfejsu wiersza polecenia platformy Azure, wybierz opcję poniżej.