我正在尝试从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')
我无法将“文件夹”中的pdf文件保存到文件夹数据中。
答案 0 :(得分:0)
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')