Недавно я наткнулся на требование проекта, где мне пришлось перечислить все капли, присутствующие в контейнере с учетом хранения, и сохранить имена BLOB в файле CSV.
Я хотел бы поделиться сценарием Python, который я создал для этой задачи, сохраняя это руководство как можно проще.
Я бы разделил этот учебник на 4 части:
- Предварительные условия
- Подключение к контейнеру для хранения Azure
- Список контейнеров
- Написание имен блоба в файл CSV
Предварительные условия
- Python (и Pip)
- Редактор кода (я использую код vs )
- Учетная запись Microsoft Azure (с созданной учетной записью)
Некоторые пакеты/модули, которые потребуются, они могут быть установлены путем выполнения следующей команды на PowerShell, командной строке или терминале (если в системе Linux):
- Модуль хранения Blob Blob -Blob Читать далее
PIP Установите Azure-storage-blob
Подключение к контейнеру для хранения Azure
Есть много способов подключиться к контейнеру. Я бы покрыл подключение, используя Строка соединения , SAS токен и SAS URL Анкет Управляемая личность и Ключевое хранилище Методы соединения также требуют некоторой конфигурации на Azure, которая вышла бы за рамки этого учебника (я бы обсудил ее в другом учебном пособии).
Получить строку подключения/токен SAS через портал Azure
- Строка соединения
Перейдите в свою учетную запись хранения через портал, на левой руке прокрутите вниз, нажмите на Ключи доступа И с правой стороны вы найдете пару ключей учетной записи и строки соединения.
- SAS токен/URL
Перейдите в свою учетную запись хранения через портал, на левой руке прокрутите вниз и нажмите на Shared Access Signature Анкет Вам придется генерировать токены, выбрав соответствующие флажки в соответствии с вашими требованиями. Смотрите приведенные скриншоты для справки.
Примечание: также можно использовать строку подключения, сгенерированную здесь. Единственная разница между этой строкой и той, сгенерированной в вышеупомянутом разделе, заключается в том, что строка (токен и URL), сгенерированная здесь, имеет дату истечения срока действия.
Код
- Строка соединения
Описание
В строке 5 и 6 код запрашивает строку подключения и имя контейнера соответственно. Причина в том, что мы хотели бы установить связь с конкретным контейнером.
blob_source_service_client.from_connection_string (source_container_connection_string)
В приведенном выше фрагменте, в blob_source_service_client
Экземпляр подключения к учетной записи хранилища сохраняется.
source_container_client.get_container_client (source_container_name)
Здесь, используя экземпляр подключения учетной записи хранения, мы устанавливаем соединение с определенным контейнером и храним экземпляр, а также возвращаем его через Source_container_Client
Анкет
- SAS токен
Описание
В этом требования являются, но разные, наряду с SAS Токен, также потребуется URL -адрес учетной записи хранения. Это изменит список параметров функции, а также вызов функции в main (). Значительная разница была бы
blob_source_service_client (account_url,)
- SAS URL
Описание
blob_source_service_client (source_container_sas_token)
Единственное важное отличие здесь в строке 5. Мы передаем URL -адрес SAS напрямую в Blobserviceclient
Анкет Установить все такое же, как в разделе строки подключения.
Подробнее о docs.microsoft.com
Список контейнеров
В приведенном выше разделе мы видели, как установить и вернуть экземпляр подключения. Давайте перейдем прямо в следующий раздел.
Описание
Эта функция принимает два аргумента, сначала экземпляр подключения, который мы создали ранее, а во -вторых, путь, по которому должны быть перечислены капли. Таким образом, вышеупомянутая функция будет печатать каждые, присутствующие в контейнере для конкретного данного пути.
Одна важная вещь, которую нужно принять к сведению, – это source_blob_list
это итерабильный объект. Точный тип:
и да, list_blobs ()
Поддерживает и страсть.
В строке 8 я добавляю имена BLOB в список. Теперь этот список будет передан create_csv (blob_list)
функция Обсуждается в следующем разделе.
Если все капли контейнера должны быть перечислены, то пустая строка (то есть ”) может быть установлена на blob_path
или сам параметр может быть опущен, а аргумент также может быть удален из list_blobs ()
Анкет
Написание имен блоба в файл CSV
Приходя к последней части, это должно быть относительно простым и пояснительным.
Новый файл CSV будет сгенерирован в месте сценария, со следующим содержимым,
Я создал сценарий, который состоит из всего приведенного выше кода, аккуратно застреленного.
Найдите скрипт Здесь Анкет
Я надеюсь, что этот урок был полезным. Обратитесь ко мне/комментариям ниже для любых предложений или запросов.
Спасибо за чтение.
😁
Оригинал: “https://dev.to/shashankm28/azure-python-list-container-blobs-5241”