导出 (0) 打印
全部展开

获取存储帐户属性

更新时间: 2014年5月

Get Storage Account Properties 操作返回指定存储帐户的系统属性。

可以按以下方式指定 Get Storage Account Properties 请求。将 <subscription-id> 替换为你的订阅 ID,将 <storage-account-name> 替换为存储帐户的名称。

 

方法 请求 URI

GET

https://management.core.windows.net/<subscription-id>/services/storageservices/<storage-account-name>

你必须确保向管理服务发出的请求是安全的。有关其他详细信息,请参见对服务管理请求进行身份验证

无。

下表介绍请求标头。

 

请求标头 说明

x-ms-version

必需。指定用于此请求的操作的版本。应将此标头设置为 2009/10/1 或更高版本。有关版本控制标头的更多信息,请参阅服务管理版本控制

无。

响应包括 HTTP 状态代码、一组响应标头和响应正文。

此操作成功后返回状态代码 200(正常)。有关状态代码的信息,请参阅服务管理状态和错误代码

此操作的响应包括以下标头。该响应还可能包括其他标准 HTTP 标头。所有标准标头都符合 HTTP/1.1 协议规范

 

响应标头 说明

x-ms-request-id

一个值,它唯一地标识对管理服务做出的请求。

响应正文的格式如下所示:


<?xml version="1.0" encoding="utf-8"?>
<StorageService xmlns="http://schemas.microsoft.com/windowsazure">
  <Url>storage-account-request-uri</Url>
  <ServiceName>storage-account-name</ServiceName>
  <StorageServiceProperties>
    <Description>description</Description>
    <AffinityGroup>affinity-group</AffinityGroup>
    <Location>location</Location>
    <Label>base64-encoded-label</Label>  
    <Status>status</Status>
    <Endpoints>
      <Endpoint>storage-service-blob-endpoint</Endpoint>
      <Endpoint>storage-service-queue-endpoint</Endpoint>
      <Endpoint>storage-service-table-endpoint</Endpoint>
    </Endpoints>
    <GeoReplicationEnabled>geo-replication-indicator</GeoReplicationEnabled>
    <GeoPrimaryRegion>primary-region</GeoPrimaryRegion> 
    <StatusOfPrimary>primary-status</StatusOfPrimary>
    <LastGeoFailoverTime>DateTime</LastGeoFailoverTime>  
    <GeoSecondaryRegion>secondary-region</GeoSecondaryRegion>  
    <StatusOfSecondary>secondary-status</StatusOfSecondary>
    <CreationTime>time-of-creation</CreationTime>
    <CustomDomains>
      <CustomDomain>
        <Name>name-of-custom-domain</Name>
      </CustomDomain>
    </CustomDomains>
    <SecondaryReadEnabled>secondary-read-indicator</SecondaryReadEnabled>
    <SecondaryEndpoints>
      <Endpoint>storage-secondary-service-blob-endpoint</Endpoint>
      <Endpoint>storage-secondary-service-queue-endpoint</Endpoint>
      <Endpoint>storage-secondary-service-table-endpoint</Endpoint>
    </SecondaryEndpoints>
  </StorageServiceProperties>
  <ExtendedProperties>
    <ExtendedProperty>
      <Name>property-name</Name>
      <Value>property-value</Value>
    </ExtendedProperty>
  </ExtendedProperties>
  <Capabilities>
    <Capability>storage-account-capability</Capability>
  </Capabilities>
</StorageService>

下表介绍响应正文的元素。

 

元素名称 说明

Url

指定存储帐户的 URI。

ServiceName

指定存储帐户的名称。该名称是 DNS 前缀名称,可用于访问存储帐户中的 blob、队列和表。

例如,如果服务名称是 MyStorageAccount,则你可以通过调用以下网页访问 Blob 容器:http://MyStorageAccount.blob.core.windows.net/mycontainer/

StorageServiceProperties

指定存储帐户的属性。

ExtendedProperties

指定已添加到存储帐户的扩展属性的名称和值。

Capability

指示存储帐户能否执行与虚拟机相关的操作。如果能,则此元素返回一个包含 PersistentVMRole 的字符串。否则,将不出现此元素。

仅在 01.03.12 版或更高版本中才可以使用 Capability 元素。

指定存储帐户的属性。

 

元素名称 说明

说明

可选。存储帐户的说明。该说明的长度最长可以为 1024 个字符。

仅在 01.03.12 版或更高版本中才可以使用 Description 元素。

AffinityGroup

如果未指定 Location,则是必需的。与此订阅相关联的现有地缘组的名称。该名称是 GUID,并且可通过检查 列出地缘组 操作返回的响应正文的名称元素进行检索。

仅在 01.03.12 版或更高版本中才可以使用 AffinityGroup 元素。

位置

如果未指定 AffinityGroup,则是必需的。将创建存储帐户的位置。

仅在 01.03.12 版或更高版本中才可以使用 Location 元素。

Label

必需。Base-64 编码的托管服务的名称。该名称的长度最长可以为 100 个字符。该名称可用于标识存储帐户,以便进行跟踪。

仅在 01.03.12 版或更高版本中才可以使用 Label 元素。

状态

存储帐户的状态。可能的值有:

  • Creating

  • Created

  • Deleting

  • Deleted

  • Changing

  • ResolvingDns

仅在 01.03.12 版或更高版本中才可以使用 Status 元素。

Endpoints

指定存储帐户的终结点。

GeoReplicationEnabled

指示是否在多个地理位置间复制存储帐户中的数据,以便可在服务严重中断时迅速恢复。如果启用了地域复制,则该值为 true;否则为 false

仅在 01.03.12 版或更高版本中才可以使用 GeoReplicationEnabled 元素。

GeoPrimaryRegion

指示存储帐户当前所在的主要地理区域。

仅在 01.03.12 版或更高版本中才可以使用 GeoPrimaryRegion 元素。

StatusOfPrimary

指示主要存储区域是否可用。

可能的值有:

  • Available

  • Unavailable

仅在 01.11.13 版或更高版本中才可以使用 StatusOfPrimary 元素。

LastGeoFailoverTime

指示最近发生的故障转移到辅助区域事件的时间戳。如果发生多次故障转移,则仅保留最近的故障转移日期和时间。

返回的时间戳格式为:[4DigitYear]-[2DigitMonth]-[2DigitDay]T[2DigitMinute]:[2DigitSecond]:[7DigitsOfPrecision]Z

例如:<LastGeoFailoverTime>2010-01-18T13:15:30.0000000Z</LastGeoFailoverTime>

如果尚未发生故障转移,则不返回 LastGeoFailoverTime。

仅在 01.03.12 版或更高版本中才可以使用 LastGeoFailoverTime 元素。

GeoSecondaryRegion

指示要将存储帐户复制到其中的地理区域。

如果此帐户的地域复制为“关闭”,则不返回 GeoSecondaryRegion 元素。

仅在 01.03.12 版或更高版本中才可以使用 GeoSecondaryRegion 元素。

StatusOfSecondary

指示辅助存储区域是否可用。

可能的值有:

  • Available

  • Unavailable

仅在 01.11.13 版或更高版本中才可以使用 StatusOfSecondary 元素。

CreationTime

指定创建存储帐户的时间。

CustomDomains

指定与存储帐户关联的自定义域。

仅在 01.06.13 版或更高版本中才可以使用 CustomDomains 元素。

SecondaryReadEnabled

指示为存储帐户启用了辅助读。

可能的值有:

  • true

  • false

仅在 01.11.13 版或更高版本中才可以使用 SecondaryReadEnabled 元素。

SecondaryEndpoints

指定存储帐户的辅助终结点。

仅在 01.11.13 版或更高版本中才可以使用 SecondaryEndpoints 元素。

指定存储帐户的终结点。

 

元素名称 说明

Endpoint

按以下格式包含 Blob 服务终结点:https:// <storage-service-name>.blob.core.windows.net

仅在 01.03.12 版或更高版本中才可以使用 Endpoint 元素。HTTP 终结点使用 2014-04-01 版或更低版本返回。

Endpoint

按以下格式包含队列服务终结点:https:// <storage-service-name>.queue.core.windows.net

仅在 01.03.12 版或更高版本中才可以使用 Endpoint 元素。HTTP 终结点使用 2014-04-01 版或更低版本返回。

Endpoint

按以下格式包含表服务终结点:https://<storage-service-name>.table.core.windows.net

仅在 01.03.12 版或更高版本中才可以使用 Endpoint 元素。HTTP 终结点使用 2014-04-01 版或更低版本返回。

指定与存储帐户关联的自定义域。

 

元素名称 说明

CustomDomain

指定与存储帐户关联的自定义域的信息。

Name

指定自定义域的名称。

指定存储帐户的辅助终结点。

 

元素名称 说明

Endpoint

按以下格式包含 Blob 辅助服务终结点:https://<storage-secondary-service-name>.blob.core.windows.net

HTTP 终结点使用 2014-04-01 版或更低版本返回。

Endpoint

按以下格式包含队列服务终结点:https://<storage-secondary-service-name>.queue.core.windows.net

HTTP 终结点使用 2014-04-01 版或更低版本返回。

Endpoint

按以下格式包含表服务终结点:https://<storage-secondary-service-name>.table.core.windows.net

HTTP 终结点使用 2014-04-01 版或更低版本返回。

指定已添加到存储帐户的扩展属性的名称和值。

 

元素名称 说明

Name

可选。表示某个扩展的存储帐户属性的名称。每个扩展属性都必须有定义的名称和值。最多可有 50 个扩展属性的名称/值对。

Name 元素的最大长度为 64 个字符,仅字母数字字符和下划线在 Name 中有效,并且该名称必须以字母开头。Name 元素中包含其他字符、以非字母字符开头或输入的名称与同一存储帐户拥有的另一扩展属性同名,将导致状态代码 400(错误请求)错误。

仅在 01.03.12 版或更高版本中才可以使用 Name 元素。

可选。表示某个扩展的存储帐户属性的值。每个扩展属性都必须有定义的名称和值。最多可有 50 个扩展属性的名称/值对,并且每个扩展属性值的最大长度为 255 个字符。

仅在 01.03.12 版或更高版本中才可以使用 Value 元素。

创建或更新存储帐户时可启用地域复制。

如果 x-ms-version 为 2012-03-01 或更高版本,并且地缘组是在已弃用的 Anywhere USAnywhere EuropeAnywhere Asia 区域之一中创建的,则 Location 元素将返回此地缘组所在的位置。

以下示例程序采用订阅 ID、关联的管理证书指纹、操作版本字符串和存储帐户名称,并将返回的存储帐户属性打印到控制台。用你自己的值初始化 msVersionsubscriptionIdthumbprintserviceName 变量以运行示例代码。

using System;
using System.Collections.Generic;
using System.Net;
using System.Security.Cryptography.X509Certificates;
using System.Xml;
using System.Xml.Linq;
 
class Program
{
    static void Main(string[] args)
    {
        string msVersion = "2011-12-01";
        string subscriptionId = "subscription-id-guid";
        string thumbprint = "certificate-thumbprint";
        string serviceName = "myexamplestorage1";
        try
        {
            // Obtain the certificate with the specified thumbprint
            X509Certificate2 certificate = GetCertificate(thumbprint);
            GetStorageAccountPropertiesExample(
                subscriptionId, certificate, msVersion, serviceName);
        }
        catch (Exception ex)
        {
            Console.WriteLine("Exception caught in Main:");
            Console.WriteLine(ex.Message);
        }
    }
 
    public static X509Certificate2 GetCertificate(string thumbprint)
    {
        List<StoreLocation> locations = new List<StoreLocation> 
            { StoreLocation.CurrentUser, StoreLocation.LocalMachine };
 
        foreach (var location in locations)
        {
            X509Store store = new X509Store("My", location);
            try
            {
                store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
                X509Certificate2Collection certificates =
                    store.Certificates.Find(
                        X509FindType.FindByThumbprint,
                        thumbprint, false);
                if (certificates.Count == 1)
                {
                    return certificates[0];
                }
            }
            finally
            {
                store.Close();
            }
        }
 
        throw new ArgumentException(string.Format(
            "A certificate with thumbprint '{0}' could not be located.",
            thumbprint));
    }
 
    public static void GetStorageAccountPropertiesExample(
        string subscriptionId,
        X509Certificate2 certificate,
        string version,
        string serviceName)
    {
        string uriFormat = "https://management.core.windows.net/{0}/services/storageservices/{1}";
        Uri uri = new Uri(String.Format(uriFormat, subscriptionId, serviceName));
 
        HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri);
        request.Method = "GET";
        request.Headers.Add("x-ms-version", version);
        request.ClientCertificates.Add(certificate);
        request.ContentType = "application/xml";
 
        XDocument responseBody = null;
        HttpStatusCode statusCode;
        HttpWebResponse response;
        try
        {
            response = (HttpWebResponse)request.GetResponse();
        }
        catch (WebException ex)
        {
            // GetResponse throws a WebException for 400 and 500 status codes
            response = (HttpWebResponse)ex.Response;
        }
        statusCode = response.StatusCode;
        if (response.ContentLength > 0)
        {
            using (XmlReader reader = XmlReader.Create(response.GetResponseStream()))
            {
                responseBody = XDocument.Load(reader);
            }
        }
        response.Close();
        if (statusCode.Equals(HttpStatusCode.OK))
        {
            XNamespace wa = "http://schemas.microsoft.com/windowsazure";
            XElement storageService = responseBody.Element(wa + "StorageService");
            Console.WriteLine(
                "Storage Account Properties for {0}:{1}{2}",
                serviceName, Environment.NewLine, 
                storageService.ToString(SaveOptions.OmitDuplicateNamespaces));
        }
        else
        {
            Console.WriteLine("Call to GetStorageAccountProperties returned an error:");
            Console.WriteLine("Status Code: {0} ({1}):{2}{3}",
                (int)statusCode, statusCode, Environment.NewLine,
                responseBody.ToString(SaveOptions.OmitDuplicateNamespaces));
        }
        return;
    }
}

显示:
© 2014 Microsoft