【发布时间】:2021-11-22 18:59:30
【问题描述】:
我正在尝试使用 python 将图像从文件存储复制到 blob 存储,但无法使其正常工作。我基于这个 node.js 示例Copy Azure File Share to Blob with node.js。我在本地运行 python 代码时遇到的异常如下所示。
azure.core.exceptions.ResourceNotFoundError:此请求无权使用此资源类型执行此操作。
这是python代码的sn-p。
sas_token = generate_account_sas(
account_name=account_name,
account_key=account_key,
resource_types=ResourceTypes(service=True),
permission=AccountSasPermissions(read=True),
expiry=datetime.utcnow() + timedelta(hours=1)
)
blob_service_client = BlobServiceClient(account_url=blob_uri, credential=account_key)
container_client = blob_service_client.get_container_client("event")
share_directory_client = ShareDirectoryClient.from_connection_string(conn_str=conn_string,
share_name="test-share",
directory_path="")
dir_list = list(share_directory_client.list_directories_and_files())
logging.info(f"list directories and files : {dir_list}")
for item in dir_list:
if item['is_directory']:
pass
else:
fileClient = share_directory_client.get_file_client(item['name'])
source_url = fileClient.url + "?" + sas_token
logging.info(f"{source_url}")
container_client.get_blob_client(item['name']).start_copy_from_url(source_url)
使用 SAS 令牌创建的源 URL 如下所示。
https://<STORAGE_NAME>.file.core.windows.net/test-share/test.jpg?se=2021-10-01T05%3A46%3A22Z&sp=r&sv=2020-10-02&ss=f&srt=s&sig=<signature>
【问题讨论】:
标签: python azure azure-functions azure-blob-storage