Как загрузить файлы в хранилище BLOB-объектов Azure? - PullRequest
0 голосов
/ 22 марта 2019

Мне нужно ежедневно загружать файлы в контейнер BLOB-объектов Azure из локальной системы. Я использую azcopy с sas для этого. Но я столкнулся с тем, что SAS для контейнера постоянно меняется при каждом обновлении. Так есть ли лучший способ я могу загружать файлы с помощью Python или AzCopy. Или есть какой-нибудь способ получить токен SAS из лазури без входа в систему и передать этот токен SAS команде azcopy? на данный момент я использую эту команду из azcopy

.\azcopy "Sourcefilepath" "Destblobpath?SAS_Token" --recurcive=true

Каждый день я должен войти в систему, чтобы получить Azure, получить токен SAS и передать указанную выше команду. я попытался. \ azcopy логин, и я получаю логин успешно, но я не могу отправить файлы с

.\azcopy "Sourcepath" "Destpath"

Не знаю, где я делаю неправильно.

Ответы [ 2 ]

0 голосов
/ 23 марта 2019

Проблема, которую вы видите для SAS, на самом деле работает так, как и должна.SAS имеет срок действия и может быть отозван в любое время.Таким образом, вы должны будете использовать новый, как только он станет доступен.

Я бы порекомендовал использовать Python SDK, поскольку он использует ключ хранилища и имя учетной записи, срок действия которой не истекает, за исключением случаев, когда ключ поворачивается.Я написал несколько инструментов / примеров в Python SDK, который выполняет все действия: список, загрузка и удаление: https://github.com/adamsmith0016/Azure-storage

Не стесняйтесь клонировать и повторно использовать любой код.

0 голосов
/ 22 марта 2019

Если вы используете Python, я бы предложил использовать Azure Python SDK для загрузки. Вы можете увидеть больше из этого примера здесь ...

https://github.com/Azure-Samples/storage-blobs-python-quickstart/blob/master/example.py

Это может быть так быстро (из документации по быстрому запуску: https://docs.microsoft.com/en-us/python/api/overview/azure/storage?view=azure-python) для взаимодействия с учетной записью хранилища BLOB-объектов Azure. Просто вставьте некоторую логику, чтобы рекурсивно перебирать каталог и загружать каждый файл.

Сначала убедитесь, что pip установили необходимые пакеты, а затем захватите имя своей учетной записи (имя хранилища BLOB-объектов) и ключ доступа с портала ... подключите их, и все готово.

pip install azure-storage-blob azure-mgmt-storage

Тогда напишите здесь немного кода на Python ...

from azure.storage.blob import BlockBlobService, PublicAccess

blob_service = BlockBlobService('[your account name]','[your access key]')

blob_service.create_container(
    'mycontainername',
    public_access=PublicAccess.Blob
)

blob_service.create_blob_from_bytes(
    'mycontainername',
    'myblobname',
    b'hello from my python file'
)

print(blob_service.make_blob_url('mycontainername', 'myblobname'))

Это должно довольно быстро привести вас в правильном направлении.

...