如何从 blob 下载文件并保存在 python 中的文件夹中

how to download file from a blob and save in folder in python

我正在尝试从 python 中的 blob 下载 .pdf 文件,但我不知道如何保存到我的项目文件夹中的目录。它一直给我一个错误权限被拒绝。

代码:

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')

我无法将 "folder" 中的 pdf 文件保存到文件夹数据中。

get_blob_to_path的第三个参数应该是文件路径而不是目录。 如果 './data' 是一个现有目录,get_blob_to_path 将尝试将文件写入一个目录,该目录解释了 Permission denied 错误。 尝试这样的事情:

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')