gpt4 book ai didi

python - 如何使用 Python 使用 Azure 文件存储的获取文件属性 REST API 获取 "content_type"

转载 作者:行者123 更新时间:2023-12-03 07:08:29 33 4
gpt4 key购买 nike

我正在尝试获取 Azure 文件共享中文件的“content_type”属性。我可以获得“last_modified”和“size”,但不能获得“content_type”

from azure.storage.file import *
from azure.storage.fileshare import *

def azure_connect_conn_string(source_file_connection_string, source_share_name):
try:
share_service = ShareServiceClient.from_connection_string(source_file_connection_string)#ShareServiceClient interact with the account level
share_client = share_service.get_share_client(source_share_name) #desired share name is accessed
file_service = FileService(connection_string=source_file_connection_string)
print("Connection String -- Connected.")
return share_client, file_service #returns the share client

except Exception as ex:
print("Error: " + str(ex))

def fileshare_content_list(connection_instance, directory_name, file_service, share_name):
d_client = connection_instance.get_directory_client(directory_name)
my_files = d_client.list_directories_and_files()
directory_list = []

for file in my_files:
if file.get('is_directory'):
#cannot get size of directory, only of files
file_name = file.get('name')
file_lastmod = file.get('last_modified')
file_type = 'directory'
file_size = 'unknown'

else:
file_name = file.get('name')
file_props = file_service.get_file_properties(share_name, directory_name, file_name)
file_lastmod = file_props.properties.last_modified
file_size = file.get('size')
print(file_name)
print(file_lastmod)
print(file_size)
print(file_props.properties.content_type)

def main():
try:
azure_connection_string = 'DefaultEndpointsProtocol=https;AccountName=ecpcdmsdatamartexternal;AccountKey=neNa1jtdyVljMN/j403/rHwdYBpPUtKTreeYM4UsKiosiOfKdePgyZdJl8SK9UdAlsXwVvOkNdNWZjnOCyn/lw==;EndpointSuffix=core.windows.net'
share_name = "ecdmpext"
directory_name = "data"
connection_instance, file_service = azure_connect_conn_string(azure_connection_string, share_name)

## List files
fileshare_content_list(connection_instance, directory_name, file_service, share_name)
print('Done')

except Exception as ex:
print('main | Error: ', ex)

if __name__ == "__main__":
main()

我收到错误“FileProperties”对象没有属性“content_type”

当我尝试使用 file.get("content_type") 时,我只是得到“None”。我使用 file.get() 作为“大小”和“名称”,对于“last_modified”,我必须使用 file_service.get_file_properties.properties.last_modified 但这两种方法都不起作用“内容类型”。

最佳答案

你就快到了:)。 content_type 属性实际上是 content_settings 的子属性。属性(property) File's property返回者 get_file_properties .

所以你的代码会是这样的:

file_content_type = file_props.properties.content_settings.content_type

关于python - 如何使用 Python 使用 Azure 文件存储的获取文件属性 REST API 获取 "content_type",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70964025/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com