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

放置范围从 URL

Put Range From URL 操作创建一个新范围,作为文件的一部分提交,其中的内容是从 URL 读取的。 此 API 自版本 2019-02-02 起可用。

协议可用性

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

请求

可以按如下方式构建Put Range From URL请求。 建议使用 HTTPS。 将 myaccount 替换为存储帐户的名称:

方法 请求 URI HTTP 版本
PUT https://myaccount.file.core.windows.net/myshare/myfile?comp=range HTTP/1.1

URI 参数

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

请求标头

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

请求标头 说明
Authorization 必需。 指定授权方案、帐户名称和签名。 有关详细信息 ,请参阅授权对 Azure 存储的请求
Datex-ms-date 必需。 指定请求的协调世界时 (UTC)。 有关详细信息,请参阅授权对 Azure 存储的请求
x-ms-version 对于所有已授权的请求是必需的。 指定用于此请求的操作的版本。 有关详细信息,请参阅 Azure 存储服务的版本控制。 对于 Put Range From URL,版本必须为 2019-02-02 或更高版本。
x-ms-copy-source:name 必需。 指定源文件的 URL。 该值可以是长度高达 2 KiB 的 URL,用于指定一个文件。 此值应为 URL 编码,如同它显示在请求 URI 中那样。 源文件必须是公共的,或者必须通过共享访问签名进行授权。 如果源文件是公共的,则无需授权即可执行该操作。 下面是源对象 URL 的一些示例:
  • https://myaccount.file.core.windows.net/myshare/mydir/myfile
  • https://myaccount.file.core.windows.net/myshare/mydir/myfile?<sastoken>
x-ms-copy-source-authorization: <scheme> <signature> 可选。 指定复制源的授权方案和签名。 有关详细信息,请参阅授权对 Azure 存储的请求
Azure Active Directory 仅支持方案持有者。
版本 2020-10-02 及更高版本中支持此标头。
x-ms-write: { update } 必需。 必须仅 update指定 。 如果使用 调用 clear请求,则请求失败。 值 update 将请求正文指定的字节写入指定的范围。
Rangex-ms-range 必需。 Range or x-ms-range is required.

指定要写入的字节范围。 必须指定范围的上限和下限。 此标头由 HTTP/1.1 协议规范定义。

对于更新操作,该范围的大小最大可以为 4 MiB。

Azure 文件存储只接受 和 x-ms-range 标头的单个字节范围Range,并且必须使用以下格式指定字节范围:bytes=startByte-endByte

如果指定了 Rangex-ms-range,服务将使用 x-ms-range 值。 有关详细信息,请参阅指定Azure 文件存储操作的范围标头
x-ms-source-range 必需。 指定要从源中读取的字节范围。 必须指定范围的上限和下限。

Azure 文件存储只接受 和 x-ms-range 标头的单个字节范围Range,并且必须使用以下格式指定字节范围:bytes=startByte-endByte

源范围的大小最大可以为 4 MiB。 如果源范围大小超过 4 MiB,Azure 文件存储返回状态代码 413 (请求实体太大) 。 如果源范围大小与范围 (目标范围) 大小不匹配,则服务将返回状态代码 400 (错误的请求) 。
Content-Length 必需。 指定在请求正文中传送的字节数。 必须将此标头的值设置为 0。 当长度不 0为 时,操作将失败,状态代码为 400 (错误请求) 。
x-ms-client-request-id 可选。 提供客户端生成的不透明值,其中包含 1 kibite (KiB) 配置日志记录时记录在日志中的字符限制。 强烈建议使用此标头将客户端活动与服务器接收的请求相关联。 有关详细信息,请参阅监视Azure 文件存储
x-ms-source-content-crc64 可选。 URI 中指定范围的 CRC64 哈希。 此哈希用于在从 URI 传输数据期间验证范围的完整性。 指定此标头时,Azure 文件存储会将从 copy-source 到达的内容的哈希值与此标头值进行比较。

注意:此 CRC64 哈希不随文件一起存储。

如果两个哈希不匹配,则操作将失败,错误代码为 400 (错误的请求) 。
x-ms-source-if-match-crc64 可选。 CRC64 校验和值。 指定此标头以仅当从源读取的给定范围的校验和与提供的校验和匹配时才执行操作。

如果不满足指定的条件,Azure 文件存储返回状态代码 412 (前置条件失败) 。
x-ms-source-if-none-match-crc64 可选。 CRC64 校验和值。 指定此标头以仅当从源读取的给定范围的校验和与提供的校验和不同时执行操作。

如果不满足指定的条件,Azure 文件存储返回状态代码 412 (前置条件失败) 。
x-ms-lease-id:<ID> 如果文件具有活动租约,则为必需。 若要对具有活动租约的文件执行此操作,请为此标头指定有效的租约 ID。
x-ms-client-request-id 可选。 提供客户端生成的不透明值,其大小为 1-kib (KiB) 字符限制,启用 Azure 存储分析 日志记录时,该限制记录在分析日志中。 强烈建议在将客户端活动与服务器接收的请求相关联时使用此标头。 有关详细信息,请参阅 监视 Blob 存储
x-ms-file-last-write-time: { now ¦ preserve } 可选。 版本 2021-06-08 及更高版本。 可以指定以下选项之一:
  • now:默认值。 汇报上次写入时间时间戳到请求的时间。
  • preserve:保持现有上次写入时间戳不变。
x-ms-file-request-intent 如果 Authorization 标头指定 OAuth 令牌,则为必需。 可接受的值为 backup。 此标头指定Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/actionMicrosoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action,如果 或 包含在分配给使用 标头授权的标识的 RBAC 策略中,则应授予 或Authorization。 适用于版本 2022-11-02 及更高版本。
x-ms-allow-trailing-dot: { <Boolean> } 可选。 版本 2022-11-02 及更高版本。 布尔值指定是否应剪裁请求 URL 中存在的尾随点。 有关详细信息,请参阅 命名和引用共享、目录、文件和元数据
x-ms-source-allow-trailing-dot: { <Boolean> } 可选。 版本 2022-11-02 及更高版本。 布尔值指定是否应剪裁源 URL 中存在的尾随点。 仅当复制源是 Azure 文件时,才应指定此标头。 任何其他复制源类型都不支持此标头。 有关详细信息,请参阅 命名和引用共享、目录、文件和元数据

请求正文

无请求正文。

示例请求

Request Syntax:  
PUT https://myaccount.file.core.windows.net/myshare/mydir/myfile?comp=range HTTP/1.1  
  
Request Headers:  
x-ms-page-write: update  
x-ms-copy-source: http://myaccount2.file.core.windows.net/myshare2/mydirectory2/myfile2?sv=2018-11-09&sp=r&sr=s&se=2018-08-22T09%3A59%3A28.2185790Z&sig=Qn6QEET3Gn%2FhCEVcXuwG7ssatIYiYRM5pNIy4Q3N0cQ%3D 
x-ms-date: Fri, 22 Aug 2018 01:15:50 GMT  
x-ms-version: 2019-02-02 
x-ms-range: bytes=100-1023  
x-ms-source-range: bytes=200-1123  
x-ms-source-content-crc64: 3bedb8b3730fc205 
Authorization: SharedKey myaccount:4KdWDiTdA9HmIF9+WF/8WfYOpUrFhieGIT7f0av+GEI=  
Content-Length: 0 

响应

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

状态代码

此操作成功后返回状态代码 201(已创建)。

有关状态代码的详细信息,请参阅 状态和错误代码

响应标头

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

响应标头 说明
ETag 包含可用于有条件地执行操作的值。 该值用引号引起来。
Last-Modified 上次修改文件的日期和时间。 日期格式遵循 RFC 1123。 有关详细信息,请参阅 标头中的日期/时间值的表示形式

对文件执行的任何写入操作(包括对文件元数据或属性的更新)将更改文件的上次修改时间。 
x-ms-request-id 唯一标识发出的请求,你可以使用它对请求进行故障排除。 有关详细信息,请参阅 API 操作疑难解答
x-ms-version 指示用于执行请求的 FileREST API 版本。
Date 由服务生成的 UTC 日期/时间值,指示启动响应的时间。
x-ms-content-crc64 返回以便客户端可以检查消息内容完整性。 此标头的值由 Azure 文件存储 计算。 它不一定与请求标头中指定的值相同。
x-ms-client-request-id 可用于对请求和相应响应进行故障排除。 如果请求中存在此标头的值,并且该值包含不超过 1,024 个可见 ASCII 字符,则此标头的值等于该标头的值 x-ms-client-request-idx-ms-client-request-id如果请求中不存在标头,则它不会出现在响应中。
x-ms-file-last-write-time 版本 2021-06-08 及更高版本。 文件的上次写入时间(ISO 8601 格式 (例如 2017-05-10T17:52:33.9551861Z ,) 。

示例响应

Response Status:  
HTTP/1.1 201 Created  

Response Headers:
Date: Sun, 22 Aug 2020 01:33:35 GMT  
ETag: "0x8CB171BA9E94B0B"  
Last-Modified: Wed, 22 Aug 2020 01:13:31 GMT  
x-ms-version: 2019-02-02
x-ms-content-crc64: 3bedb8b3730fc205 
Content-Length: 0  
Server: Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0  

授权

此操作可由帐户所有者以及具有共享访问签名且有权写入此文件或 Azure 文件共享的任何人调用。

注解

Put Range From URL 操作将一系列数据写入文件。 如果对目标上不存在的文件调用 API,则 API 将返回 HTTP 状态代码 404 (“找不到”) 。

在版本 2020-10-02 及更高版本中,复制操作的源支持 Azure Active Directory 授权。

若要创建新文件,请调用Create File

Put Range From URL 仅当指定范围写入文件时,操作才会返回 success 201 (Created) 。

文件读取操作
Put Range From URL 用于 Get File 从源读取数据和元数据、属性和 ACL。

文件更新操作
使用“update”选项调用 Put Range From URL 会对指定文件执行就地写入。 指定文件中的任何内容都将被更新覆盖。  

更新操作中的 Put Range From URL 范围大小最大可以为 4 MiB。 如果尝试上传大于 4 MiB 的范围,Azure 文件存储返回状态代码 413 (RequestEntityTooLarge) 。