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

设置共享 ACL

操作 Set Share ACL 设置与共享访问签名一起使用的存储访问策略。 有关设置访问策略的详细信息,请参阅 使用共享访问签名授予对 Azure 存储资源的有限访问权限

协议可用性

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

请求

可以按如下所示构造 Set Share ACL 请求。 建议使用 HTTPS。 将 myaccount 替换为存储帐户的名称。

方法 请求 URI HTTP 版本
PUT https://myaccount.file.core.windows.net/myshare?restype=share&comp=acl HTTP/1.1

URI 参数

可以在请求 URI 上指定以下附加参数:

参数 说明
timeout 可选。 timeout 参数以秒表示。 有关详细信息,请参阅为Azure 文件存储操作设置超时

请求标头

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

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

有关详细信息,请参阅 Azure 存储服务的版本控制
x-ms-client-request-id 可选。 提供客户端生成的不透明值,其中包含 1-kiB (KiB) 配置日志记录时记录在存储分析日志中的字符限制。 强烈建议使用此标头将客户端活动与服务器接收的请求相关联。 有关详细信息,请参阅监视Azure Blob 存储
x-ms-lease-id:<ID> 如果目标文件共享具有活动租约,则是必需的。 适用于版本 2020-02-10 及更高版本。 如果请求不包含租约 ID 或无效,则操作将失败,状态代码为 412 (先决条件失败) 。

如果指定了此标头,并且目标文件共享当前没有活动租约,则操作将失败,状态代码为 412 (先决条件失败) 。

请求正文

要指定存储访问策略,请在 Set Share ACL 操作的请求正文中提供唯一的标识符和访问策略。

元素 SignedIdentifier 包括元素中指定的唯一 Id 标识符。 SignedIdentifier 还包括访问策略的详细信息,如 元素中指定的 AccessPolicy 。 唯一标识符的最大长度为 64 个字符。

StartExpiry 字段必须表示为 UTC 时间,并且必须遵循有效的 ISO 8061 格式。 支持的 ISO 8061 格式包括:

  • YYYY-MM-DD
  • YYYY-MM-DDThh:mmTZD
  • YYYY-MM-DDThh:mm:ssTZD
  • YYYY-MM-DDThh:mm:ss.fffffffTZD

对于这些格式的日期部分,YYYY 是四位数的年份表示形式,MM 是两位数的月份表示形式,而 DD 是两位数的日期表示形式。 对于时间部分,hh 是二十四小时制的小时表示形式,mm 是两位数的分钟表示形式,ss 是两位数的秒钟表示形式,而 fffffff 是七位数的毫秒表示形式。 时间指示符 T 分隔字符串的日期和时间部分。 时区指示符 TZD 指定时区。

<?xml version="1.0" encoding="utf-8"?>  
<SignedIdentifiers>  
  <SignedIdentifier>   
    <Id>unique-64-character-value</Id>  
    <AccessPolicy>  
      <Start>start-time</Start>  
      <Expiry>expiry-time</Expiry>  
      <Permission>abbreviated-permission-list</Permission>  
    </AccessPolicy>  
  </SignedIdentifier>  
</SignedIdentifiers>  

示例请求

Request Syntax:  
PUT https://myaccount.file.core.windows.net/myshare?restype=share&comp=acl HTTP/1.1  
  
Request Headers:  
x-ms-version: 2015-02-21  
x-ms-date: <date>  
Authorization: SharedKey myaccount:V47F2tYLS29MmHPhiR8FyiCny9zO5De3kVSF0RYQHmo=  
  
Request Body:  
<?xml version="1.0" encoding="utf-8"?>  
<SignedIdentifiers>  
  <SignedIdentifier>   
    <Id>MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI=</Id>  
    <AccessPolicy>  
      <Start>2015-07-01T08:49:37.0000000Z</Start>  
      <Expiry>2015-07-02T08:49:37.0000000Z</Expiry>  
      <Permission>rwd</Permission>  
    </AccessPolicy>  
  </SignedIdentifier>  
</SignedIdentifiers>  

响应

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

状态代码

此操作成功后返回状态代码 200(正常)。

响应头

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

响应标头 说明
ETag 返回上次修改容器的日期和时间。 日期格式遵循 RFC 1123。 有关详细信息,请参阅 标头中的日期/时间值的表示形式
Last-Modified 修改共享或其属性或元数据的任何操作会更新上次修改时间,包括设置文件的权限。 对文件执行的操作不会影响共享的上次修改时间。
x-ms-request-id 唯一标识发出的请求,可用于对请求进行故障排除。 有关详细信息,请参阅 API 操作疑难解答
x-ms-version 指示用于执行请求的Azure 文件存储的版本。
Datex-ms-date 一个 UTC 日期/时间值,该值指示服务发送响应的时间。
x-ms-client-request-id 可用于对请求和相应响应进行故障排除。 如果请求中存在此标头的值 x-ms-client-request-id ,并且该值最多为 1,024 个可见 ASCII 字符,则此标头的值等于标头的值。 x-ms-client-request-id如果请求中不存在标头,则响应中不会显示此标头。

示例响应

Response Status:  
HTTP/1.1 200 OK  
  
Response Headers:  
Transfer-Encoding: chunked  
Date: <date>  
ETag: "0x8CB171613397EAB"  
Last-Modified: <date>  
x-ms-version: 2015-02-21  
Server: Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0  

授权

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

注解

只有帐户所有者可以访问特定共享中的资源,除非满足以下条件之一:

  • 所有者通过设置对共享的权限,指定共享资源可供公共访问。
  • 所有者已为共享中的资源颁发了共享访问签名。

在设置容器的权限时,将替换现有的权限。 若要更新容器的权限,请调用 Get Share ACL 来提取与容器关联的所有访问策略。 修改要更改的访问策略,然后使用完整的数据集调用 Set Share ACL 以执行更新。

建立共享级别访问策略

存储访问策略可以指定与其关联的共享访问签名的开始时间、过期时间和权限。 根据想要控制对共享或文件资源的访问的方式,可以:

  • 在存储访问策略中指定所有这些参数,并从共享访问签名的 URL 中省略这些参数。 这样做可让你随时修改关联签名的行为或撤销它。
  • 指定存储访问策略中的一个或多个访问策略参数,并在 URL 上指定其他参数。
  • 指定 URL 上的所有参数。 在这种情况下,可以使用存储访问策略来撤销签名,但不能修改其行为。

有关设置访问策略的详细信息,请参阅 使用共享访问签名授予对 Azure 存储资源的有限访问权限

共享访问签名和存储访问策略必须同时包含授权签名所需的所有字段。 如果缺少任何必需的字段,则请求将失败。 同样,如果在共享访问签名 URL 和存储访问策略中都指定了字段,则请求将失败,状态代码为 400 (错误请求) 。 有关构成共享访问签名的字段的详细信息,请参阅 使用共享访问签名

可以随时为共享设置最多五个单独的访问策略。 如果在请求正文中传递了五个以上的访问策略,则服务将返回状态代码 400 (错误请求) 。

无论容器数据是否可用于匿名读取访问,都可以对共享或文件发出共享访问签名。 共享访问签名可以更好地控制资源访问的方式、时间和访问对象。

无法设置或检索共享快照的访问策略。 如果尝试设置访问策略,服务将返回状态代码 400 (InvalidQueryParameterValue) 。

注意

在容器上建立存储访问策略时,最长可能需要 30 秒才能生效。 在此时间间隔内,与存储访问策略关联的共享访问签名将失败,状态代码为 403 (禁止) ,直到访问策略变为活动状态。

另请参阅

对 FileShare 资源的操作 (Azure 文件存储)