Загрузить файл из контейнера больших двоичных объектов AZURE, используя SAS URI в PYTHON

#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, не могли бы вы помочь пометить это как ответ. вот ссылка на то, как отметить, если вы не знаете, спасибо.