Azure: Jak skopiować plik na blob storage container za pomocą AZ CLI?

21-lut-2024

Zacznijmy od tego, że się trzeba zalogować. Można to zrobić na różne sposoby, ale powiedzmy, że wykonamy polecenie:

az login

i dokończymy logowanie w przeglądarce.

Istotne jest, aby mieć odpowiednie uprawnienia. W przeciwnym razie dostaje się komunikat podobny do poniższego:

You do not have the required permissions needed to perform this operation.
Depending on your operation, you may need to be assigned one of the following roles:
„Storage Blob Data Owner”
„Storage Blob Data Contributor”
„Storage Blob Data Reader”
„Storage Queue Data Contributor”
„Storage Queue Data Reader”
„Storage Table Data Contributor”
„Storage Table Data Reader”

Jeśli dodasz sobie uprawnienia, bo były za niskie, to poczekaj chwilę przed kolejną próbą. Azure nie od razu widzi nadane uprawnienia. Dla pewności można sie nawet wylogować i zalogować ponownie. Polecenie do wylogowania to:

az logout

No i przechodzimy do esencji, czyli kopiowania pliku. Odpowiednia komenda to az storage blob copy start. Polecenie trochę długie, ale ma sens. Na początku az, czyli nazwa komendy. Potem storage, bo pracujemy ze storage. Blob, bo kopiowanie ma się odbyć na blob service, dalej copy, bo chcemy przekopiować plik i ostatecznie start, bo to polecenie jest asynchroniczne – komenda się wykona, a kopiowanie może nadal trwać w tle. Dodatkowe parametry do przekazania to:

  • –destination-blob <filename> – określa nazwę, pod jaką plik ma się pojawić na blobie
  • –destination-container <containername> – określa nazwę kontenera, do którego plik ma być przesłany
  • –account-name <storageaccountname> – tutaj podaj krótką nazwę storage account. Nie trzeba podawać długiej nazwy, bo Azure już wie, że chodzi o blob service, a krótka nazwa i tak musi być unikalna globalnie w skali całego świata
  • –source-uri <uri> – określa adres źródłowy, pod jakim znajduje się plik do przekopiowania
  • –authmode login – mówi, że żądanie ma być uwierzytelnione w oparciu o EntraID – właśnie dlatego ten przykład zaczął się od zalogowania do Azure

Oto przykład pełnej komendy, która „kradnie” plik z wikipedii i umieszcza na twoim storage account

az storage blob copy start --destination-blob comp1.jpg --destination-container test_container --account-name stoacc7635442 --source-uri https://upload.wikimedia.org/wikipedia/commons/thumb/a/a9/IMac.jpg/330px-IMac.jpg --auth-mode login

Komentarze są wyłączone

Autor: Rafał Kraik