在调用ListFilesAndDirectories(https://docs.microsoft.com/en-us/dotnet/api/microsoft.windowsazure.storage.file.cloudfiledirectory.listfilesanddirectories?view=azure-dotnet)时,有没有办法让Azure包含IListFileItem元数据?
我正在创建一个简单的备份脚本,该脚本利用文件元数据并希望脚本尽可能快地使用尽可能少的请求。因此,我不想为每个文件发出后续请求以获取元数据。
答案 0 :(得分:2)
截至今天,这是不可能的。您需要为列表结果中返回的每个文件和目录单独调用以获取元数据。
CloudFileDirectory.ListFilesAndDirectories
本质上是List Directories and Files
REST API调用的包装器,这个特定的操作不带一个请求参数,你可以告诉存储服务返回文件/目录元数据(你可以做这样的事情)在blob容器中列出blob时。)
答案 1 :(得分:1)
据我所知,ListFilesAndDirectories方法将调用List Directories and Files rest api。它将发送请求以列出文件和目录。但结果将不包含文件和目录元数据。
响应是这样的:
foreach (IListFileItem item in result)
{
if (item is CloudFile)
{
var cloudFile = (CloudFile)item;
cloudFile.FetchAttributes();
// You can now access metadata and properties
var rest = cloudFile.Metadata;
//cloudFile.Properties
}
else if (item is CloudFileDirectory)
{
var cloudFileDirectory = (CloudFileDirectory)item;
// You can now access metadata and properties
cloudFileDirectory.FetchAttributes();
var rest = cloudFileDirectory.Metadata;
//cloudFileDirectory.Metadata
//cloudFileDirectory.Properties
}
}
因此,如果您想获取文件和目录的matedata,唯一的方法是为每个文件发送另一个请求(调用FetchAttributes方法)以获取文件或目录的元数据。
这样的代码:
<ul class="bxslider">
<li>list 1</li>
<li>list 2</li>
</ul>
<script>
$(document).ready(function () {
var slider = $('.bxslider').bxSlider({
captions: true
});
$('.bx-pager-link').click(function(){
slider.fade();
});
});
</script>