azure 在Python中使用sas url列出数据库中的文件

lf3rwulv  于 2023-03-31  发布在  Python
关注(0)|答案(1)|浏览(163)

如何列出datalake目录中的文件?我使用以下代码获得相同的,但得到一个错误。我从Azure存储资源管理器中创建了具有读取和列表权限的sasurl

from azure.storage.filedatalake import DataLakeServiceClient

sas_url = "https://<account_name>.dfs.core.windows.net/<dir_name>/<dir_path>?sv=2020-02-10&st=2023-03-30T06%3A39%3A45Z&se=2023-03-31T06%3A39%3A45Z&sr=d&sp=rl&sig=xxD&sdd=3"
filesystem_name = 'filesystem_name'
directory_path = '/directory_path/'
storage_account_name = 'storage_account_name'
account_url=f"https://<account_name>.dfs.core.windows.net"

datalake_service_client = DataLakeServiceClient(account_url=sas_url, logging_enable=True)
file_client = datalake_service_client.get_file_system_client(filesystem_name)
paths = file_system_client.get_paths(directory_path)
for path in paths:
    print(path)

但是在for path in paths时,它会抛出一个错误,如下所示:

HttpResponseError: (InvalidQueryParameterValue) Value for one of the query parameters specified in the request URI is invalid.
RequestId:c2ac7695-d01f-0030-4df1-6212f2000000
Time:2023-03-30T10:22:26.0744702Z
Code: InvalidQueryParameterValue
Message: Value for one of the query parameters specified in the request URI is invalid.
RequestId:c2ac7695-d01f-0030-4df1-6212f2000000
Time:2023-03-30T10:22:26.0744702Z
xjreopfe

xjreopfe1#

您遇到的错误表明,在SAS URL中指定的某个查询参数存在问题,您正在使用该参数对数据湖的访问进行身份验证。具体而言,似乎是某个查询参数的值无效。
您可能需要仔细检查SAS URL,并确保所有查询参数的值都正确。例如,您可能需要验证“st”(开始时间)和“se”(到期时间)参数是否具有有效的日期和时间值。
此外,在您提供的代码中,您在创建DataLakeServiceClient时使用sas_url作为account_url参数。您应该将account_url设置为您的数据湖帐户的URL,而不是SAS URL。

相关问题