你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

设置表服务属性

Set Table Service Properties操作为存储帐户的 Azure 表存储终结点设置属性,包括存储分析和跨域资源共享的属性 (CORS) 规则。 有关 CORS 规则的详细信息,请参阅 对 Azure 存储服务的 CORS 支持

请求

可以按如下所示指定 Set Table Service Properties 请求。 建议使用 HTTPS。 将 account-name 替换为存储帐户的名称。

方法 请求 URI HTTP 版本
PUT https://account-name.table.core.windows.net/?restype=service&comp=properties HTTP/1.1

请注意,URI 必须始终包含正斜杠 (/),以将主机名与 URI 的路径和查询部分隔开。 在执行此操作时,URI 的路径部分是空的。

URI 参数

URI 参数 说明
restype=service&comp=properties 必需。 设置 Azure 存储服务的属性需要这两个查询字符串的组合。
timeout 可选。 timeout 参数以秒表示。

请求标头

下表介绍了必需请求标头和可选请求标头:

请求标头 说明
Authorization 必需。 指定授权方案、存储帐户名称和签名。 有关详细信息,请参阅授权对 Azure 存储的请求
Datex-ms-date 必需。 指定请求的协调世界时 (UTC)。 有关详细信息,请参阅授权对 Azure 存储的请求
x-ms-version 对于所有已授权的请求是必需的。 指定用于此请求的操作的版本。 有关详细信息,请参阅 Azure 存储服务的版本控制
x-ms-client-request-id 可选。 提供客户端生成的不透明值,其中包含 1-kiB (KiB) 配置日志记录时记录在日志中的字符限制。 强烈建议使用此标头将客户端活动与服务器接收的请求相关联。

请求正文

对于 2012-02-12 版和更早版本,请求正文的格式如下所示:

<?xml version="1.0" encoding="utf-8"?>  
<StorageServiceProperties>  
    <Logging>  
        <Version>version-number</Version>  
        <Delete>true|false</Delete>  
        <Read>true|false</Read>  
        <Write>true|false</Write>  
        <RetentionPolicy>  
            <Enabled>true|false</Enabled>  
            <Days>number-of-days</Days>  
        </RetentionPolicy>  
    </Logging>  
    <Metrics>  
        <Version>version-number</Version>  
        <Enabled>true|false</Enabled>  
        <IncludeAPIs>true|false</IncludeAPIs>  
        <RetentionPolicy>  
            <Enabled>true|false</Enabled>  
            <Days>number-of-days</Days>  
        </RetentionPolicy>  
    </Metrics>  
</StorageServiceProperties>  

对于 2013-08-15 版和更高版本,请求正文的格式如下所示:

<?xml version="1.0" encoding="utf-8"?>  
<StorageServiceProperties>  
    <Logging>  
        <Version>version-number</Version>  
        <Delete>true|false</Delete>  
        <Read>true|false</Read>  
        <Write>true|false</Write>  
        <RetentionPolicy>  
            <Enabled>true|false</Enabled>  
            <Days>number-of-days</Days>  
        </RetentionPolicy>  
    </Logging>  
    <HourMetrics>  
        <Version>version-number</Version>  
        <Enabled>true|false</Enabled>  
        <IncludeAPIs>true|false</IncludeAPIs>  
        <RetentionPolicy>  
            <Enabled>true|false</Enabled>  
            <Days>number-of-days</Days>  
        </RetentionPolicy>  
    </HourMetrics>  
    <MinuteMetrics>  
        <Version>version-number</Version>  
        <Enabled>true|false</Enabled>  
        <IncludeAPIs>true|false</IncludeAPIs>  
        <RetentionPolicy>  
            <Enabled>true|false</Enabled>  
            <Days>number-of-days</Days>  
        </RetentionPolicy>  
    </MinuteMetrics>  
    <Cors>  
        <CorsRule>  
            <AllowedOrigins>comma-separated-list-of-allowed-origins</AllowedOrigins>  
            <AllowedMethods>comma-separated-list-of-HTTP-verb</AllowedMethods>  
            <MaxAgeInSeconds>max-caching-age-in-seconds</MaxAgeInSeconds>  
            <ExposedHeaders>comma-separated-list-of-response-headers</ExposedHeaders>  
            <AllowedHeaders> comma-separated-list-of-request-headers </AllowedHeaders>  
        </CorsRule>  
    </Cors>  
</StorageServiceProperties>  

从 2013-08-15 版开始,你可使用请求正文中指定的一个或多个根元素调用 Set Table Service Properties。 根元素包括:

  • Logging

  • HourMetrics

  • MinuteMetrics

  • Cors

不再需要在请求上指定每个根元素。 如果忽略某个根元素,则将保留针对该功能的服务现有设置。 但是,如果指定根元素,则必须为该元素指定每个子元素。

下表说明了请求正文的元素:

元素名称 说明
Logging 可选版本 2013-08-15 及更高版本。 对于早期版本是必需的。 对存储分析Logging设置进行分组。
Metrics 对 2012-02-12 版和更早版本是必需的。 不适用于版本 2013-08-15 及更高版本。 对存储分析Metrics设置进行分组。 Metrics 设置汇总了表的每小时聚合中按 API 分组的请求统计信息。
HourMetrics 可选版本 2013-08-15 及更高版本。 不适用于早期版本。 对存储分析HourMetrics设置进行分组。 HourMetrics 设置汇总了表的每小时聚合中按 API 分组的请求统计信息。
MinuteMetrics 可选版本 2013-08-15 及更高版本。 不适用于早期版本。 对存储分析MinuteMetrics设置进行分组。 MinuteMetrics 设置提供了表每分钟的请求统计信息。 对于 2013-08-15 之前的版本,响应正文不包括 MinuteMetrics
Version 必需。 指示要配置的存储分析的版本。
Delete 必需。 仅适用于日志记录配置。 指示是否应记录所有删除请求。
Read 必需。 仅适用于日志记录配置。 指示是否应记录所有读取请求。
Write 必需。 仅适用于日志记录配置。 指示是否应记录所有写入请求。
Enabled 必需。 指示是否为 Azure 存储服务启用指标。

如果启用了读访问的地域冗余复制,则同时收集主度量值和辅助度量值。 如果未启用读访问的地域冗余复制,则仅收集主度量值。
IncludeAPIs 仅当启用度量值时才是必需的。 仅适用于度量值配置。 指示度量值是否应为调用的 API 操作生成汇总统计信息。
RetentionPolicy/Enabled 必需。 指示是否为 Azure 存储服务启用保留策略。
RetentionPolicy/Days 只有在启用保留策略时才是必需的。 指示应保留度量值或日志记录数据的天数。 将删除早于该值的所有数据。 可以指定的最小值为 1。 最大值为 365 (一年) 。
Cors 可选。 版本 2013-08-15 及更高版本受支持。 对所有 CORS 规则进行分组。

忽略此元素组将不会覆盖现有 CORS 设置。
CorsRule 可选。 指定表存储的 CORS 规则。 可在请求中包含最多五个 CorsRule 元素。 如果请求正文中不包含任何 CorsRule 元素,则将删除所有 CORS 规则,并且将禁用表存储的 CORS。
AllowedOrigins 如果 CorsRule 元素存在,则是必需的。 提供将通过 CORS 允许的源域的逗号分隔列表,或包含 * 以允许所有域的源域列表。 源域还可以在子域中包含通配符,以允许通过 CORS 请求域的所有子域。 限制为 64 个源域。 允许的每个源最多可包含 256 个字符。
ExposedHeaders 如果元素存在,则 CorsRule 为必需项。 提供以逗号分隔的响应标头列表,以便向 CORS 客户端公开。 限制为 64 个定义的标头和 2 个带前缀的标头。 每个标头最多可包含 256 个字符。
MaxAgeInSeconds 如果元素存在,则 CorsRule 为必需项。 指示客户端或浏览器应缓存预检响应的秒数。
AllowedHeaders 如果元素存在,则 CorsRule 为必需项。 提供允许作为跨域请求一部分的标头的逗号分隔列表。 限制为 64 个定义的标头和 2 个带前缀的标头。 每个标头最多可包含 256 个字符。
AllowedMethods 如果元素存在,则 CorsRule 为必需项。 提供允许源执行的 HTTP 方法的逗号分隔列表。 对于 Azure 存储,允许的方法是 DELETE、、GETHEADMERGEPOSTOPTIONSPUT

响应

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

状态代码

成功的操作将返回状态代码 202(已接受)。

响应头

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

响应标头 说明
x-ms-request-id 指定一个值,该值唯一标识针对服务发出的请求。
x-ms-version 指定用于响应的操作版本。 有关详细信息,请参阅 Azure 存储服务的版本控制
x-ms-client-request-id 可用于对请求和相应响应进行故障排除。 如果请求中存在此标头的值 x-ms-client-request-id ,并且该值最多为 1,024 个可见 ASCII 字符,则此标头的值等于标头的值。 x-ms-client-request-id如果请求中不存在标头,则响应中不会显示此标头。

响应正文

无。

授权

只有帐户所有者才能调用此操作。

注解

下列限制适用于 Azure 存储中的 CORS 规则:

  • 最多可以存储五个规则。

  • 请求上所有 CORS 规则设置(不包括 XML 标记)的最大大小不应超过 2 KiB。

  • 允许的标头、公开的标头或允许的源的长度不应超过 256 个字符。

  • 允许的标头和公开的标头可以是:

    • 提供确切标头名称的文本标头,例如 x-ms-meta-processed。 最多可以在请求中指定 64 个文本标头。

    • 提供标头前缀的带前缀的标头,例如 x-ms-meta-data\。 以这种方式指定前缀允许或公开以该前缀开头的任何标头。 最多可以在请求中指定两个带前缀的标头。

  • 元素中指定的 AllowedMethods 方法 (或 HTTP 谓词) 必须符合 Azure 存储服务 API 支持的方法。 支持的方法包括 DELETE、、GETHEADMERGEPOSTOPTIONSPUT

在请求中指定 CORS 规则是可选的。 如果你在未在请求正文中指定 Cors 元素的情况下调用 Set Table Service Properties,则将保留任何现有 CORS 规则。

若要禁用 CORS,请使用 Set Table Service Properties 空的 CORS 规则设置 (调用,例如, </Cors>) 且没有内部 CORS 规则。 此调用会删除任何现有规则,并禁用表存储的 CORS。

如果指定 元素, CorsRule 则需要所有 CORS 规则元素。 如果缺少任何元素,请求将失败,错误代码为 400 (错误的请求) 。

从版本 2013-08-15 开始,XML 设置的元素是可选的。 可以通过发送仅包含更新元素且不影响其他设置的 XML 来更新特定元素。

有关 CORS 规则和评估逻辑的详细信息,请参阅 对 Azure 存储服务的 CORS 支持

示例请求和响应

以下示例 URI 发出更改名为 myaccount 的虚构存储帐户的表存储属性的请求:

PUT https://myaccount.table.core.windows.net/?restype=service&comp=properties HTTP/1.1  

请求与以下标头一起发送:

x-ms-version: 2013-08-15  
x-ms-date: Mon, 21 Oct 2013 04:38:23 GMT  
Authorization: SharedKey  
myaccount:Z1lTLDwtq5o1UYQluucdsXk6/iB7YxEu0m6VofAEkUE=  
Host: myaccount.table.core.windows.net  

请求与以下 XML 正文一起发送:

<?xml version="1.0" encoding="utf-8"?>  
<StorageServiceProperties>  
    <Logging>  
        <Version>1.0</Version>  
        <Delete>true</Delete>  
        <Read>false</Read>  
        <Write>true</Write>  
        <RetentionPolicy>  
            <Enabled>true</Enabled>  
            <Days>7</Days>  
        </RetentionPolicy>  
    </Logging>  
    <HourMetrics>  
        <Version>1.0</Version>  
        <Enabled>true</Enabled>  
        <IncludeAPIs>false</IncludeAPIs>  
        <RetentionPolicy>  
            <Enabled>true</Enabled>  
            <Days>7</Days>  
        </RetentionPolicy>  
    </HourMetrics>  
    <MinuteMetrics>  
        <Version>1.0</Version>  
        <Enabled>true</Enabled>  
        <IncludeAPIs>true</IncludeAPIs>  
        <RetentionPolicy>  
            <Enabled>true</Enabled>  
            <Days>7</Days>  
        </RetentionPolicy>  
    </MinuteMetrics>  
    <Cors>  
        <CorsRule>  
            <AllowedOrigins> http://www.fabrikam.com,http://www.contoso.com</AllowedOrigins>  
            <AllowedMethods>GET,PUT</AllowedMethods>  
            <MaxAgeInSeconds>500</MaxAgeInSeconds>  
            <ExposedHeaders>x-ms-meta-data*,x-ms-meta-customheader</ExposedHeaders>  
            <AllowedHeaders>x-ms-meta-target*,x-ms-meta-customheader</AllowedHeaders>  
        </CorsRule>  
    </Cors>  
</StorageServiceProperties>  
  

发送请求后,将返回以下响应:

HTTP/1.1 202 Accepted  
Connection: Keep-Alive  
Transfer-Encoding: chunked  
Date: Mon, 21 Oct 2013 04:38:24 GMT  
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0  
x-ms-request-id: cb939a31-0cc6-49bb-9fe5-3327691f2a30  
x-ms-version: 2013-08-15  
  

另请参阅