Azure存储:查找帐户是否为高级帐户
有没有办法确定帐户是高级帐户还是未使用Azure存储Java API或Azure REST APIAzure存储:查找帐户是否为高级帐户,azure,azure-storage,Azure,Azure Storage,有没有办法确定帐户是高级帐户还是未使用Azure存储Java API或Azure REST API 如果我有存储帐户名和密钥,是否有办法确定存储帐户类型?您可以从REST API在sku.tier中检索此信息: 请求 GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}?api-version=
如果我有存储帐户名和密钥,是否有办法确定存储帐户类型?您可以从REST API在sku.tier中检索此信息: 请求
GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}?api-version=2016-12-01
回应
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}",
"name": "accountName",
"location": "account geo region",
"tags": {
"key1": "value1",
"key2": "value2"
},
"type": "Microsoft.Storage/StorageAccount",
"properties": {
"provisioningState": "status",
"encryption": {
"services": {
"blob": {
"enabled": true,
"lastEnabledTime": dateTime}
}
"keySource": "Microsoft.Storage"
}
"primaryEndpoints": {
"blob": "blob endpoint",
"queue": "queue endpoint",
"table": "table endpoint",
"file": "file endpoint"
},
"primaryLocation": "primary geo region",
"statusOfPrimary": "available|unavailable",
"lastGeoFailoverTime": "dateTime",
"secondaryLocation": "secondary geo region",
"statusOfSecondary": "available|unavailable",
"secondaryEndpoints": {
"blob": "secondary blob endpoint",
"queue": "secondary queue endpoint",
"table": "secondary table endpoint",
},
"creationTime": "dateTime",
"customDomain": {
"name": "user domain”
},
"accessTier": "Cool|Hot"
},
"sku": {
"name": "Standard_LRS|Standard_ZRS|Standard_GRS|Standard_RAGRS|Premium_LRS"
"tier": "Standard|Premium"
}
"kind": "Storage|BlobStorage"
}
如果您知道subscriptionId,请使用@Thiago Custodio提供的REST解决方案 如果您不知道subscriptionId,请检查我的以下解决方法 基于,我们知道高级存储帐户不支持CORS和存储分析,因此我们可以基于此获取帐户类型。如果downloadServiceProperties方法未引发异常,则帐户类型为标准。否则,帐户类型为Premium。以下代码仅供参考
public string getAccountType(string accountName, string accountKey)
{
string connectionString = "DefaultEndpointsProtocol=http;AccountName=" + accountName + ";AccountKey=" + accountKey + ";";
// Setup the cloud storage account.
CloudStorageAccount account = CloudStorageAccount.parse(connectionString);
// Create a blob service client
CloudBlobClient blobClient = account.createCloudBlobClient();
try
{
bloblClient.downloadServiceProperties();
return "Standard";
}
catch(StorageException e)
{
return "Premium";
}
}
这需要对存储帐户具有权限。我正在寻找一个只与存储帐户名和密钥一起工作的解决方案。我已经通过了该线程,但该解决方案需要依赖MSFT才能将上述服务添加到高级存储中。我不确定这样做是否正确。帐户名和密钥是访问存储内容的凭据,而不是存储帐户属性本身。我们只能根据标准存储和高级存储之间的差异来确定帐户类型。我们还可以发现高级存储不支持块blob。如果出现异常,我们可以编写代码将一些字节上传到blob。存储类型将是高级存储。有道理,我很想知道MSFT是否计划将上述服务添加到高级存储中。