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

设置文件服务属性

Set File Service Properties 操作使用 FileREST API 设置文件服务资源的属性。 尽管此 API 完全受支持,但它是旧版管理 API。 建议改用由 Azure 存储资源提供程序 (Microsoft.Storage) 提供 的文件服务 - 设置服务属性。 若要详细了解如何使用 Azure 存储资源提供程序以编程方式与文件服务资源交互,请参阅 文件服务上的操作

协议可用性

已启用文件共享协议 可用
SMB 是
NFS 是

请求

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

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

注意

URI 必须始终包含斜杠字符 (/) ,以便将主机名与 URI 的路径和查询部分分开。 在此操作中,URI 的路径部分为空。

URI 参数

URI 参数 说明
restype=service&comp=properties 必需。 必须组合使用这两个查询字符串才能设置存储服务属性。
timeout 可选。 timeout 参数以秒表示。 有关详细信息,请参阅 设置文件服务操作的超时

请求标头

下表描述了必需的和可选的请求标头:

请求标头 说明
Authorization 必需。 指定授权方案、存储帐户名称和签名。 有关详细信息,请参阅授权对 Azure 存储的请求
Date or x-ms-date 必需。 指定请求的协调世界时 (UTC)。 有关详细信息,请参阅授权对 Azure 存储的请求
x-ms-version 对于所有已授权的请求是必需的。 指定用于此请求的操作的版本。 此操作仅在版本 2015-02-21 及更高版本中可用。 若要为文件服务启用指标,必须指定版本 2015-04-05 或更高版本。

有关详细信息,请参阅 Azure 存储服务的版本控制
x-ms-client-request-id 可选。 提供客户端生成的不透明值,其中包含 1-kiB (KiB) 配置日志记录时记录在存储分析日志中的字符限制。 强烈建议使用此标头将客户端活动与服务器接收的请求相关联。 有关详细信息,请参阅监视Azure 文件存储

请求正文

版本 2020-02-10 的请求正文的格式如下所示:

<?xml version="1.0" encoding="utf-8"?>  
<StorageServiceProperties>  
    <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>    
    <ShareDeleteRetentionPolicy>
        <Enabled>true|false</Enabled>
        <Days>integer-value</Days>
    </ShareDeleteRetentionPolicy>
    <ProtocolSettings>
        <SMB>
            <Multichannel>
                <Enabled>true|false</Enabled>
            </Multichannel>
            <Versions>comma-separated-list-of-smb-versions</Versions>
            <AuthenticationMethods>comma-separated-list-of-auth-methods</AuthenticationMethod>
            <KerberosTicketEncryption>csv-of-kerb-encryption-algorithms</KerberosTicketEncryption>
            <ChannelEncryption>csv-of-smb-encryption-algorithms</ChannelEncryption>
        </SMB>
    </ProtocolSettings>
</StorageServiceProperties>  
  

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

  • HourMetrics
  • MinuteMetrics
  • Cors
  • ProtocolSettings

下表描述了请求正文的元素:

名称 说明
HourMetrics 对于版本 2015-04-05 及更高版本是可选的。 不适用于早期版本。 对存储分析HourMetrics设置进行分组,这些设置提供按 API 按小时聚合分组的请求统计信息摘要。
MinuteMetrics 对于版本 2015-04-05 及更高版本是可选的。 不适用于早期版本。 对存储分析MinuteMetrics设置进行分组,这些设置提供每分钟的请求统计信息。
Version 如果启用了指标,则为必需项。 要配置的存储分析版本。 将 1.0 用于此值。
Enabled 必需。 指示是否为文件服务启用指标。
IncludeAPIs 仅当启用度量值时才是必需的。 指示度量值是否应为调用的 API 操作生成汇总统计信息。
RetentionPolicy/Enabled 必需。 指示是否为文件服务启用保留策略。 如果为 false,则保留指标数据,用户负责删除它。
RetentionPolicy/Days 只有在启用保留策略时才是必需的。 指示指标数据应保留的天数。 将删除早于此值的所有数据。 可以指定的最小值为 1,最大值为 365 (一年) 。 保留期到期后,将尽最大努力删除指标数据。
Cors 可选。 Cors版本 2015-02-21 及更高版本支持 元素。 将所有跨域资源共享 (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
ShareDeleteRetentionPolicy 可选。 此存储帐户中 Azure 文件共享的软删除属性。
Days 可选。 指示 Azure 文件共享应保留 (软删除) 的天数。 可以指定的最小值为 1,最大值 365 (一年) 。
Enabled 可选。 指示存储帐户是否为Azure 文件存储启用了软删除。
ProtocolSettings 可选。 对文件系统协议的设置进行分组。
SMB 可选。 对 SMB 的设置进行分组。
Multichannel 可选。 包含 SMB 多通道的设置。 SMB 多通道包含 Enabled 布尔属性,用于切换 SMB 多通道的状态。
Version 自版本 2020-04-08 起可选。 允许的 SMB 版本的逗号分隔列表。 允许使用的值为 SMB2.1SMB3.0SMB3.1.1
AuthenticationMethods 自版本 2020-04-08 起可选。 允许的身份验证方法的逗号分隔列表。 允许的值为 NTLMv2Kerberos
KerberosTicketEncryption 自版本 2020-04-08 起可选。 允许的 Kerberos 票证加密算法的逗号分隔列表。 允许的值为 RC4-HMACAES-256
ChannelEncryption 自版本 2020-04-08 起可选。 允许的 SMB 通道加密协议的逗号分隔列表。 允许使用的值为 AES-128-CCMAES-128-GCMAES-256-GCM

响应

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

状态代码

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

响应头

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

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

响应正文

无。

授权

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

注解

以下限制和限制适用于 Azure 文件存储 中的 CORS 规则:

  • 最多可存储 5 条规则。

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

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

  • 允许的标头和公开的标头可以是以下任一项:

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

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

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

在请求中指定 CORS 规则是可选的。 如果在请求正文中未指定 CORS 元素的情况下调用 Set File Service Properties ,则会维护任何现有的 CORS 规则。

若要禁用 CORS,请使用空的 CORS 规则设置 (调用 Set File Service Properties</Cors> 即) ,而没有内部 CORS 规则。 此调用将删除任何现有规则,并禁用文件服务的 CORS。

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

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

示例请求和响应

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

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

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

x-ms-version: 2020-02-10  
x-ms-date: <date>  
Authorization: SharedKey myaccount:Z1lTLDwtq5o1UYQluucdsXk6/iB7YxEu0m6VofAEkUE=  
Host: myaccount.file.core.windows.net  

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

<?xml version="1.0" encoding="utf-8"?>  
<StorageServiceProperties>  
    <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>
    <ShareDeleteRetentionPolicy>
        <Enabled>true</Enabled>
        <Days>7</Days>
    </ShareDeleteRetentionPolicy>
    <ProtocolSettings>
        <SMB>
            <Multichannel>
                <Enabled>true</Enabled>
            </Multichannel>
            <Versions>SMB3.1.1</Versions>
            <AuthenticationMethods>Kerberos</AuthenticationMethods>
            <KerberosTicketEncryption>AES-256</KerberosTicketEncryption>
            <ChannelEncryption>AES-256-GCM</ChannelEncryption>
        </SMB>
    </ProtocolSettings>
</StorageServiceProperties>  

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

HTTP/1.1 202 Accepted  
Connection: Keep-Alive  
Transfer-Encoding: chunked  
Date: <date>  
Server: Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0  
x-ms-request-id: cb939a31-0cc6-49bb-9fe5-3327691f2a30  
x-ms-version: 2015-04-05  

另请参阅

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

有关存储分析的详细信息,请参阅存储分析