#python #azure #azure-storage #azure-blob-storage
#python #azure #azure-хранилище #azure-blob-хранилище
Вопрос:
У меня есть контейнер Azure, в котором я храню некоторые файлы. Мне нужно получить к ним доступ с помощью кода Python, я сделал то же самое на JAVA, но я не могу воспроизвести его на Python
//Это java-код для same.
CloudBlobContainer Con = new CloudBlobContainer("Some SAS URI");
CloudBlockBlob blob1 = Con.getBlockBlobReference(fileName);
blob1.downloadToFile(filePath fileName userName);
Комментарии:
1. Какой у вас SAS URI? Это для контейнера больших двоичных объектов или blob-объекта? Пожалуйста, отредактируйте свой вопрос и укажите SAS URI (вы можете запутать имя учетной записи и часть sig в SAS URI).
Ответ №1:
В python нет эквивалентного метода, вы можете взглянуть на класс контейнера python
Вы всегда должны использовать BlockBlobService
с токеном sas (если у вас есть uri sas, вы можете получить токен sas из него) или ключом учетной записи, как показано ниже, если вы используете токен sas:
from azure.storage.blob import BlockBlobService
blobservice = BlockBlobService("storage_account",sas_token="?sv=2018-03-28amp;ss=bfqtamp;srt=scoamp;sp=rwdlacupamp;se=2019-04-24T10:01:58Zamp;st=2019-04-23T02:01:58Zamp;spr=httpsamp;sig=xxxxxxxxx")
blobservice.get_blob_to_path("container_name","blob_name","local_file_path")
Комментарии:
1. Да, это работает нормально, спасибо, я не знал, что метод BlockBlobService также имеет параметр sas_token.
2. @Amitvishnoi, не могли бы вы помочь пометить это как ответ. вот ссылка на то, как отметить, если вы не знаете, спасибо.