导出 (0) 打印
全部展开
此主题尚未评级 - 评价此主题

设置 BLOB 服务属性 (REST API)

更新时间: 2013年12月

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

也可以使用此操作为未指定版本的所有 BLOB 服务传入请求设置默认请求版本。

请求

可以按以下方式指定 Set Blob Service Properties 请求。建议使用 HTTPS。将 <account-name> 替换为您的存储帐户名称:

 

方法 请求 URI HTTP 版本

PUT

https://<account-name>.blob.core.windows.net/?restype=service&comp=properties

HTTP/1.1

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

URI 参数

 

URI 参数 说明

restype=service&comp=properties

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

timeout

可选。timeout 参数以秒表示。有关详细信息,请参阅为 BLOB 服务操作设置超时

请求标头

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

 

请求标头 说明

Authorization

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

Datex-ms-date

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

x-ms-version

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

x-ms-client-request-id

可选。提供客户端生成的、具有 1 KB 字符限制的难理解的值,当启用存储分析日志记录时在分析日志中记录该值。强烈建议使用此标头以将客户端活动与服务器收到的请求关联。有关详细信息,请参阅关于存储分析日志记录Windows 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>
    <!-- The DefaultServiceVersion element can only be set for the Blob service and the request must be made using version 2011-08-18 or later -->
    <DefaultServiceVersion>default-service-version-string</DefaultServiceVersion>
</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>
    <!-- The DefaultServiceVersion element can only be set for the Blob service and the request must be made using version 2011-08-18 or later -->
    <DefaultServiceVersion>default-service-version-string</DefaultServiceVersion>
</StorageServiceProperties>

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

  • Logging

  • HourMetrics

  • MinuteMetrics

  • Cors

  • DefaultServiceVersion

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

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

 

元素名称 说明

Logging

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

Metrics

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

HourMetrics

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

MinuteMetrics

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

Version

如果指定 LoggingMetricsHourMetricsMinuteMetrics 设置,则是必需的。要配置的存储分析版本。

Delete

如果指定 LoggingMetricsHourMetricsMinuteMetrics 设置,则是必需的。仅适用于日志记录配置。指示是否应记录所有删除请求。

Read

如果指定 LoggingMetricsHourMetricsMinuteMetrics 设置,则是必需的。仅适用于日志记录配置。指示是否应记录所有读取请求。

Write

如果指定 LoggingMetricsHourMetricsMinuteMetrics 设置,则是必需的。仅适用于日志记录配置。指示是否应记录所有写入请求。

Enabled

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

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

IncludeAPIs

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

RetentionPolicy/Enabled

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

RetentionPolicy/Days

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

DefaultServiceVersion

可选。若要设置 DefaultServiceVersion,您必须使用 2011-08-18 版或更高版本调用 Set Blob Service PropertiesDefaultServiceVersion 指示未指定传入请求版本时用于 BLOB 服务请求的默认版本。可取的值包括 2008-10-27 版和所有更新的版本。有关适用的版本的详细信息,请参阅Windows Azure 中 BLOB 服务、队列服务和表服务的版本管理

仅适用于 BLOB 服务。

Cors

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

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

CorsRule

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

AllowedOrigins

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

ExposedHeaders

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

MaxAgeInSeconds

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

AllowedHeaders

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

AllowedMethods

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

响应

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

状态代码

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

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

响应标头

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

 

响应标头 说明

x-ms-request-id

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

x-ms-version

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

响应正文

无。

授权

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

备注

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

  • 最多可存储 5 条规则。

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

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

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

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

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

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

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

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

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

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

有关 CORS 规则和评估逻辑的详细信息,请参阅 对 Windows Azure 存储服务的跨域资源共享 (CORS) 支持

示例请求和响应

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

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

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

x-ms-version: 2013-08-15
x-ms-date: Mon, 21 Oct 2013 04:28:19 GMT
Authorization: SharedKey
myaccount:Z1lTLDwtq5o1UYQluucdsXk6/iB7YxEu0m6VofAEkUE=
Host: myaccount.blob.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>
    <DefaultServiceVersion>2013-08-15</DefaultServiceVersion>
</StorageServiceProperties>

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

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

另请参阅

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