как скачать файл из блоба и сохранить в папке в python - PullRequest
0 голосов
/ 17 марта 2020

Я пытаюсь загрузить файл .pdf из BLOB-объекта в python, но не могу понять, как сохранить его в папке в папке моего проекта. он продолжает выдавать мне сообщение об отказе в разрешении.

код:

block_blob_service = BlockBlobService(account_name='hi', account_key='hi') 
tenant = 'hi'
container_name = 'files'
id_ = 1
upload_id = 'upload'+'/'+str(id_)

location = 'local'+'/'+tenant+'/'+upload_id+'/'

for c in block_blob_service.list_containers(): 
   if c.name == container_name:
        for blob in block_blob_service.list_blobs(c.name):
            if location in blob.name:
                print(blob.name)
                block_blob_service.get_blob_to_path(c.name,blob.name,'data')

Я не могу сохранить PDF-файлы, которые есть в «папке», в данные папки.

1 Ответ

0 голосов
/ 17 марта 2020

Третьим параметром get_blob_to_path должен быть путь к файлу, а не каталог. если './data' является существующим каталогом, get_blob_to_path попытается записать файл в каталог, который объясняет ошибку «Отказано в доступе». Попробуйте что-то вроде этого:

import os
block_blob_service = BlockBlobService(account_name='hi',account_key='hi') 
tenant = 'hi'
container_name = 'files'
id_ = 1
upload_id = 'upload'+'/'+str(id_)
location = 'local'+'/'+tenant+'/'+upload_id+'/'

for c in block_blob_service.list_containers(): 
    if location in blob.name:
        print(blob.name)
        path_to_file = "data/" + blob.name
        dir = os.path.dirname(path_to_file)
        os.makedirs(dir, exist_ok=True)
        # path_to_file should change between loop iterations
        block_blob_service.get_blob_to_path(c.name,blob.name,'data')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...