销售电话: 1-800-867-1380

设置表服务属性 (REST API)

更新时间: 2014年11月

Set Table Service Properties 操作将设置存储帐户的表服务终结点的属性,包括存储分析和 CORS(跨域资源共享)规则的属性。有关 CORS 规则的详细信息,请参阅 对 Windows 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 参数 说明

restype=service&comp=properties

必需。必须组合使用这两个查询字符串才能设置存储服务属性。

timeout

可选。timeout 参数以秒表示。

下表介绍必需的和可选的请求标头。

 

请求标头 说明

Authorization

必需。指定身份验证方案、存储帐户名和签名。有关详细信息,请参阅Azure 存储服务身份验证

Datex-ms-date

必需。为请求指定协调世界时 (UTC)。有关详细信息,请参阅Azure 存储服务身份验证

x-ms-version

对于所有验证的请求是必需的。指定用于此请求的操作的版本。有关详细信息,请参阅Windows Azure 中 BLOB 服务、队列服务和表服务的版本管理

x-ms-client-request-id

可选。提供客户端生成的、附带 1 KB 字符限制的不透明值,在启用存储分析日志记录时,将在分析日志中记录该值。强烈建议使用此标头将客户端活动与服务器接收的请求相关联。有关详细信息,请参阅 关于存储分析日志记录Azure 日志记录:使用日志跟踪存储请求

对于 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-seperated-list-of-response-headers</ExposedHeaders>
            <AllowedHeaders> comma-seperated-list-of-request-headers </AllowedHeaders>
        </CorsRule>
    </Cors>
</StorageServiceProperties>

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

  • Logging

  • HourMetrics

  • MinuteMetrics

  • Cors

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

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

 

元素名称 说明

Logging

从 2013-08-15 版开始是可选的。对于早期版本是必需的。对 Azure Analytics Logging 设置进行分组。

Metrics

对 2012-02-12 版和更早版本是必需的。不适用于 2013-08-15 版或更高版本。对 Azure Analytics Metrics 设置进行分组。Metrics 设置汇总了表的每小时聚合中按 API 分组的请求统计信息。

HourMetrics

对 2013-08-15 版或更高版本是可选的,不适用于早期版本。对 Azure Analytics HourMetrics 设置进行分组。HourMetrics 设置汇总了表的每小时聚合中按 API 分组的请求统计信息。

MinuteMetrics

对 2013-08-15 版或更高版本是可选的,不适用于早期版本。对 Azure Analytics MinuteMetrics 设置进行分组。MinuteMetrics 设置提供了表每分钟的请求统计信息。对于 2013-08-15 之前的版本,响应正文不包括 MinuteMetrics

Version

必需。要配置的存储分析版本。

删除

必需。仅适用于日志记录配置。指示是否应记录所有删除请求。

读取

必需。仅适用于日志记录配置。指示是否应记录所有读取请求。

写入

必需。仅适用于日志记录配置。指示是否应记录所有写入请求。

已启用

必需。指示是否为存储服务启用度量。

如果启用了读访问的地域冗余复制,则同时收集主度量值和辅助度量值。如果未启用读访问的地域冗余复制,则仅收集主度量值。

IncludeAPIs

仅当启用度量值时才是必需的。仅适用于度量值配置。指示度量值是否应为调用的 API 操作生成汇总统计信息。

RetentionPolicy/Enabled

必需。指示是否为存储服务启用保留策略。

RetentionPolicy/Days

只有在启用保留策略时才是必需的。指示应保留度量值或日志记录数据的天数。将删除早于该值的所有数据。你可以指定的最小值为 1;最大值为 365(1 年)。

Cors

可选。2013-08-15 版或更高版本支持 Cors 元素。对所有 CORS 规则进行分组。

忽略此元素组将不会覆盖现有 CORS 设置。

CorsRule

可选。为表服务指定 CORS 规则。请求中最多可包含 5 个 CorsRule元素。如果请求正文中不包含 CorsRule 元素,则将删除所有 CORS 规则,并对表服务禁用 CORS。

AllowedOrigins

如果 CorsRule 元素存在,则是必需的。将通过 CORS 允许的源域的以逗号分隔的列表,或者为“*”以允许所有域。限制为 64 个源域。允许的每个源最多可包含 256 个字符。

ExposedHeaders

如果 CorsRule 元素存在,则是必需的。要公开给 CORS 客户端的响应标头的以逗号分隔的列表。限制为 64 个定义的标头和 2 个带前缀的标头。每个标头最多可包含 256 个字符。

MaxAgeInSeconds

如果 CorsRule 元素存在,则是必需的。客户端/浏览器应缓存预检响应的秒数。

AllowedHeaders

如果 CorsRule 元素存在,则是必需的。允许成为跨源请求的一部分的标头的以逗号分隔的列表。限制为 64 个定义的标头和 2 个带前缀的标头。每个标头最多可包含 256 个字符。

AllowedMethods

如果 CorsRule 元素存在,则是必需的。允许由源执行的 HTTP 方法的以逗号分隔的列表。对于 Azure 存储,允许的方法为 DELETE、GET、HEAD、MERGE、POST、OPTIONS 或 PUT。

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

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

有关状态代码的信息,请参阅服务管理状态和错误代码

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

 

响应标头 说明

x-ms-request-id

唯一地标识针对服务发出的请求的值。

x-ms-version

指定用于响应的操作版本。有关详细信息,请参阅Windows Azure 中 BLOB 服务、队列服务和表服务的版本管理

无。

只有帐户所有者可以调用此操作。

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

  • 最多可存储 5 条规则。

  • 请求中的所有 CORS 规则设置(XML 标记除外)的最大大小不应超过 2 KB。

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

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

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

    • 带前缀的标头,其中提供了标头的前缀,如 x-ms-meta-data*。以此方式指定前缀将允许或公开以给定前缀开头的所有标头。最多可在请求中指定 2 个带前缀的标头。

  • AllowedMethods 元素中指定的方法(或 HTTP 谓词)必须与 Azure 存储服务 API 支持的方法一致。支持的方法为 DELETE、GET、HEAD、MERGE、POST、OPTIONS 和 PUT。

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

要禁用 CORS,请在 CORS 规则设置为空(例如</Cors>)且无任何内部 CORS 规则的情况下调用 Set Table Service Properties。此调用将删除任何现有规则,并为表服务禁用 CORS。

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

从 2013-08-15 版开始,XML 设置元素将是可选的,因此可通过发送仅包含已更新元素的 XML 来完成特定元素的更新,其他设置将不会受到影响。

有关 CORS 规则和评估逻辑的详细信息,请参阅 对 Windows 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

另请参阅

本文是否对您有所帮助?
(1500 个剩余字符)
感谢您的反馈
显示:
© 2014 Microsoft