如何获取abfss路径下Azure Data Lake文件夹的最新修改时间
问题说明
调用os包读取abfss路径时会抛出文件不存在报错,复现代码与报错信息如下:
>>> os.stat("abfss://path") FileNotFoundError: [Error 2] No such file or directory: 'abfss://path'
- 报错原因:
os包仅支持操作本地路径、挂载点路径,无法直接识别abfss这类云存储协议路径。若项目不允许使用挂载点方案,无法通过该方式获取Azure Data Lake Storage中文件夹的最新修改时间,需使用Azure官方存储SDK实现需求。
解决方案
通过SDK提供的DataLakeServiceClient类直连ADLS服务获取目录属性,即可提取到文件夹的最新修改时间,参考实现代码如下:
# 拼接存储账户访问地址 storage_account_url="{}://{}.dfs.core.windows.net".format("https", account_name) # 初始化服务客户端,使用存储账户密钥完成鉴权 service_client = DataLakeServiceClient(account_url=storage_account_url, credential=account_key) # 初始化目标目录对应的客户端 directory_client = service_client.get_directory_client(container_name, directory_name) # 获取目录元数据属性 directory_properties = directory_client.get_directory_properties() # 从属性中提取最后修改时间 last_modified_date = directory_properties['last_modified']
内容的提问来源于stack exchange,提问作者Nikhil Reddy
相关产品推荐
相关产品推荐

