Azure应用程序服务对使用的本地(临时)存储量有限制。但是,据我了解,限制是整个应用程序服务计划的全部。
我想在不超出限制的情况下最大限度地利用本地存储。但是,在同一个应用程序服务计划中将其分散在多个应用程序服务中,就变得棘手。
是否有一个REST API返回应用程序服务计划本地磁盘使用情况?甚至更好的方法是从环境中获取这种信息?
可以在Kudu的“环境”选项卡上查看用法,但我想在正在运行的Web应用程序中的代码中进行此操作。
答案 0 :(得分:0)
您可以list usages by restapi。在正式文档中进行测试时出了点问题,您需要使用Postman
之类的工具进行测试。
例如https://management.azure.com/subscriptions/{subscriptions}/resourceGroups/{resourceGroups}/providers/Microsoft.Web/sites/{webappname}/usages?api-version=2019-08-01&$filter=name.value eq 'FileSystemStorage'
答案 1 :(得分:0)
您可以调用GetDiskFreeSpace API来找出磁盘可用空间:
public static decimal GetAvailableSpaceInBytes(string path)
{
uint sectorsPerCluster;
uint bytesPerSector;
uint numberOfFreeClusters;
uint totalNumberOfClusters;
GetDiskFreeSpace(path, out sectorsPerCluster, out bytesPerSector, out numberOfFreeClusters, out totalNumberOfClusters);
long bytes = (long)numberOfFreeClusters * sectorsPerCluster * bytesPerSector;
return bytes;
}
[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)]
private static extern bool GetDiskFreeSpace(
string lpRootPathName,
out uint lpSectorsPerCluster,
out uint lpBytesPerSector,
out uint lpNumberOfFreeClusters,
out uint lpTotalNumberOfClusters);
请记住,App Service将为Web应用程序使用的文件夹设置配额,并且查询GetDiskFreeSpace将在Web App配额的上下文中返回可用空间。
对于给定的Azure App Service Web App可写文件夹知道这一点很有趣。