Azure Data Lake Store 中的目录大小

Directory size in Azure Data Lake Store

是否有一个简单的 API 可以用来获取 ADLS 目录的大小?最好是 C# 中的东西,但这不是必须的。

是的,您可以使用 DataLakeStoreFileSystemManagementClient.FileSystem.GetContentSummary:

var client = new DataLakeStoreFileSystemManagementClient(credentials);
ContentSummaryResult result = client.FileSystem.GetContentSummary(dataLakeAccount, path);
var dirSize = result.ContentSummary.Length;

Documentation.

我们可以使用 Get Content Summary of a Directory REST API 来做到这一点。

curl -i "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=GETCONTENTSUMMARY"

C# 代码演示

 var url = "https://tomdatalake.azuredatalakestore.net/webhdfs/v1/tomtest?api-version=2017-08-01&op=GETCONTENTSUMMARY";
 var token = "eyJ0eX.....";
 using (var client = new HttpClient())
 {
     client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
     var result = client.GetAsync(url).Result;
     var data = result.Content.ReadAsStringAsync().Result;
 }

我也用PostMan测试过