如何从 Azure 文件共享中获取文件元数据?

Posted

技术标签:

【中文标题】如何从 Azure 文件共享中获取文件元数据?【英文标题】:How to get file metadata from Azure File Share? 【发布时间】:2020-12-28 13:32:56 【问题描述】:

我正在尝试使用 npm storage-file-share 从 Azure 文件共享中获取文件共享元数据。

代码 sn-p 如下,但在文档中没有找到任何获取元数据的地方。

有什么方法可以从 azure 库中获取元数据或必须调用 rest api?

const serviceClient = new ShareServiceClient(
      `https://$storageAccountName.file.core.windows.net`,
      credential
    );
    const directoryClient  = serviceClient.getShareClient(shareName).getDirectoryClient(directoryPath);
    const dirIter = directoryClient.listFilesAndDirectories();
    const list = [];
    for await (const item of dirIter) 
        list.push(name: item.name, metadata????); // Need item metadata 
    

【问题讨论】:

【参考方案1】:

您可以将getProperties 方法用于fetching metadata 用于filedirectory。下面是这个方法的定义:

返回所有用户定义的元数据、标准 HTTP 属性和 文件的系统属性。它不返回的内容 文件。

所以在你的代码中 -> 在for await (const item of dirIter) 中,你需要确定它是file 还是directory,然后调用getProperties() 方法。示例代码如下所示:

for await (const item of dirIter) 
      if (item.kind === "directory") 
        
        const mydirectory = directoryClient.getDirectoryClient(item.name);
        var diretory_properties = await mydirectory.getProperties();

        //for test, you can print out the metadata
        console.log(diretory_properties.metadata);

        //here, you can write code to add the metadata in your list

       else 
        
        const myfile=directoryClient.getFileClient(item.name);
        var the_properties = await myfile.getProperties();

        //for test, you can print out the metadata
        console.log(the_properties.metadata)

       //here, you can write code to add the metadata in your list

      
    

【讨论】:

【参考方案2】:

可以使用getShareMetadata的方法

fileService.getShareMetadata(shareName, function (error, result, response) 

【讨论】:

以上是关于如何从 Azure 文件共享中获取文件元数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 azure 存储帐户中删除 azure 文件共享旧数据?

如何从 Azure 应用服务访问外部元数据库配置文件

如何从 azure storage 或媒体 serviceazure 更新元数据媒体文件

如何在说 x 天后定期从 azure 文件共享中删除文件?

如何从 Azure DevOps Pipeline 读取 Azure 文件共享文件

如何从 azure 文件共享中删除特定时间段之前的文件