你当前正在访问 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 存储的请求。 |
Date 或 x-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 、、GET 、HEAD MERGE 、POST 、 OPTIONS 和 PUT 。 |
响应
响应包括 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
、、GET
、HEAD
、MERGE
POST
、OPTIONS
和PUT
。
在请求中指定 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