如何获取Azure File Share中已上传文件的上传日期及实现方案
需求背景
在Azure中部署了File Share文件共享服务,需要列出共享目录下的所有文件内容以及对应文件的上传日期,从而快速定位最近上传的文件。
最初实现的问题代码
from azure.storage.file import FileService from azure.common import ResourceNotFoundError file_service = FileService(account_name='', account_key='') generator = list(file_service.list_directories_and_files('')) try: for file_or_dir in generator: properties= file_service.get_file_properties(share_name='', directory_name="", file_name=file_or_dir.name) print(file_or_dir.name, file_or_dir.properties.__dict__) except ResourceNotFoundError as ex: print('ResourceNotFoundError:', ex.message)
问题现象
调用__dict__属性查看文件属性时,last_modified字段返回空:
file_name.zip {'last_modified': None, ...}
问题原因
list_directories_and_files接口返回的文件/目录对象仅包含基础元数据,不会预加载完整的属性信息,last_modified等扩展属性需要从get_file_properties接口返回的对象中读取。原代码错误打印了列表返回对象的属性,而非接口查询到的完整属性对象的对应字段。
修复后可正常获取上传日期的代码
from azure.storage.file import FileService from azure.common import ResourceNotFoundError file_service = FileService(account_name='', account_key='') generator = list(file_service.list_directories_and_files('')) try: for file_or_dir in generator: file_in = file_service.get_file_properties(share_name='', directory_name="", file_name=file_or_dir.name) print(file_or_dir.name, file_in.properties.last_modified) except ResourceNotFoundError as ex: print('ResourceNotFoundError:', ex.message)
内容的提问来源于stack exchange,提问作者rainbow12
相关产品推荐
相关产品推荐

