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

获取文件

Get File作从系统读取或下载文件,包括其元数据和属性。 在版本 2025-05-05 及更高版本中支持此作,以启用 NFS 协议的文件共享。

协议可用性

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

请求

Get File 请求构造如下。 建议使用 HTTPS。

方法 请求 URI HTTP 版本
获取 https://myaccount.file.core.windows.net/myshare/mydirectorypath/myfile HTTP/1.1

将请求 URI 中显示的路径组件替换为自己的路径组件,如下所示:

路径组件 描述
myaccount 存储帐户的名称。
myshare 文件共享的名称。
mydirectorypath 自选。 目录的路径。
myfile 文件的名称。

有关路径命名限制的信息,请参阅 名称和引用共享、目录、文件和元数据

URI 参数

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

参数 描述
timeout 自选。 timeout 参数以秒为单位表示。 有关详细信息,请参阅 设置 Azure 文件存储作的超时

请求标头

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

常见请求标头

请求标头 描述
Authorization 必填。 指定授权方案、帐户名称和签名。 有关详细信息,请参阅 授权对 Azure 存储的请求。
Datex-ms-date 必填。 指定请求的协调世界时(UTC)。 有关详细信息,请参阅 授权对 Azure 存储的请求。
x-ms-version 所有授权请求都是必需的。 指定要用于此请求的作的版本。 在版本 2025-05-05 及更高版本中支持此作,以启用 NFS 协议的文件共享。

有关详细信息,请参阅 azure 存储服务 版本控制。
Range 自选。 仅从指定的字节范围返回文件数据。
x-ms-range 自选。 仅从指定的字节范围返回文件数据。 如果同时指定了 Rangex-ms-range,则服务将使用 x-ms-range的值。 如果两者均未指定,则返回整个文件内容。 有关详细信息,请参阅 指定 Azure 文件存储作的范围标头
x-ms-range-get-content-md5: true 自选。 当此标头设置为 true 并且它与 Range 标头一起指定时,服务将返回该范围的 MD5 哈希,前提是范围小于或等于 4 个字节(MiB)。

如果未指定此标头 Range 标头,服务将返回状态代码 400(错误请求)。

如果此标头设置为 true 当范围超过 4 MiB 时,服务将返回状态代码 400(错误请求)。
x-ms-lease-id:<ID> 自选。 版本 2019-02-02 及更高版本。 如果指定了标头,则仅当文件的租约当前处于活动状态并且请求中指定的租约 ID 与文件的租约 ID 匹配时,才会执行该作。 否则,作失败,状态代码为 412(前置条件失败)。

如果文件位于启用了 NFS 协议的文件共享上,则忽略此标头,这不支持文件租约。
x-ms-client-request-id 自选。 提供客户端生成的不透明值,该值具有配置日志记录时日志中记录的 1-kibibyte (KiB) 字符限制。 强烈建议使用此标头将客户端活动与服务器接收的请求相关联。 有关详细信息,请参阅 监视 Azure 文件
x-ms-file-request-intent 如果需要 Authorization 标头指定 OAuth 令牌。 可接受的值为 backup。 此标头指定,如果 Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/actionMicrosoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action 包含在分配给使用 Authorization 标头授权的标识的 RBAC 策略中,则应授予 Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action。 适用于版本 2022-11-02 及更高版本。
x-ms-allow-trailing-dot: { <Boolean> } 自选。 版本 2022-11-02 及更高版本。 布尔值指定是否应剪裁请求 URL 中存在的尾随点。

如果目标位于启用了 NFS 协议的文件共享上,则默认支持尾随点,则忽略此标头。

有关详细信息,请参阅 命名和引用共享、目录、文件和元数据

仅 SMB 请求标头

没有。

仅 NFS 请求标头

没有。

请求正文

没有。

响应

响应包括 HTTP 状态代码、一组响应标头和包含文件内容的响应正文。

状态代码

成功的作返回状态代码 200(正常)。 有关状态代码的信息,请参阅 状态和错误代码

响应标头

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

常见响应标头

响应标头 描述
Last-Modified 返回上次修改文件的日期和时间。 日期格式遵循 RFC 1123。 有关详细信息,请参阅 表示标头中的日期/时间值。 修改文件或其属性的任何作将更新上次修改时间。
x-ms-meta-name:value 作为用户定义的元数据与此文件关联的一组名称/值对。
Content-Length 响应正文中存在的字节数。
Content-Type 为文件指定的内容类型。 默认内容类型为 application/octet-stream
Content-Range 如果客户端通过设置 Range 请求标头请求文件的子集,则返回的字节范围。
ETag 包含可用于有条件地执行作的值。 该值用引号引起来。
Content-MD5 如果文件具有 MD5 哈希,并且请求是读取完整文件,则返回此响应标头,以便客户端可以检查消息内容完整性。

如果请求读取指定范围并将 x-ms-range-get-content-md5 设置为 true,则只要范围大小小于或等于 4 MiB,请求将返回该范围的 MD5 哈希。

如果这两组条件都没有 true,则不会为 Content-MD5 标头返回任何值。

如果在未指定范围标头的情况下指定 x-ms-range-get-content-md5,服务将返回状态代码 400(错误请求)。

如果当范围超过 4 MiB 时 x-ms-range-get-content-md5 设置为 true,则服务将返回状态代码 400(错误请求)。
Content-Encoding 返回为 Content-Encoding 请求标头指定的值。
Content-Language 返回为 Content-Language 请求标头指定的值。
Cache-Control 如果之前为文件指定了该文件,则返回它。
Content-Disposition 返回为 x-ms-content-disposition 标头指定的值,并指定如何处理响应。

Content-Disposition 响应标头字段传达有关如何处理响应有效负载的其他信息,还可用于附加其他元数据。 例如,如果设置为 attachmentContent-Disposition 表示用户代理不应显示响应,但应显示“另存为”窗口。
x-ms-request-id 唯一标识已发出的请求,并可用于对请求进行故障排除。 有关详细信息,请参阅 API作疑难解答
x-ms-version 用于执行请求的服务版本。
Accept-Ranges: bytes 指示服务支持对部分文件内容的请求。
Date Date
x-ms-copy-completion-time:<datetime> 版本 2015-02-21 及更高版本。 上次尝试 复制文件作(该文件是目标文件)的最后一次尝试时间。 此值可以指定已完成、中止或失败复制尝试的时间。 如果复制处于挂起状态,或者此文件从未成为 复制文件作中的目标,或者此文件在结束的 复制文件作后修改,则不会显示此标头,该作使用 设置文件属性创建文件
x-ms-copy-status-description: <error string> 版本 2015-02-21 及更高版本。 仅在 x-ms-copy-status失败挂起时显示。 描述致命或非致命复制作失败的原因。 如果此文件从未在 复制文件作中成为目标,或者此文件在结束 复制文件作后修改,则不会显示此标头,该作使用 设置文件属性创建文件
x-ms-copy-id: <id> 版本 2015-02-21 及更高版本。 上次尝试 复制文件作的字符串标识符,其中此文件是目标文件。 如果文件从未在 复制文件作中成为目标,或者此文件在结束 复制文件作后修改,则不会显示此标头,该作使用 设置文件属性创建文件
x-ms-copy-progress: <bytes copied/bytes total> 版本 2015-02-21 及更高版本。 包含上次尝试的 复制文件作中复制的字节数和源中的总字节数,其中此文件是目标文件。 可以显示从 0 到复制的 Content-Length 字节数。 如果此文件从未在 复制文件作中成为目标,或者此文件在结束 复制文件作后修改,则不会显示此标头,该作使用 设置文件属性创建文件
x-ms-copy-source: url 版本 2015-02-21 及更高版本。 最大长度为 2 KB 的 URL,指定在上次尝试 复制文件作(该文件是目标文件)中使用的源文件。 如果此文件从未成为 复制文件作中的目标,或者此文件在结束的 复制文件作后修改,则不会显示此标头,该作使用 设置文件属性创建文件
x-ms-copy-status: <pending ¦ success ¦ aborted ¦ failed> 版本 2015-02-21 及更高版本。 由 x-ms-copy-id标识的复制作的状态,具有以下值:

- pending:复制正在进行中。 检查 x-ms-copy-status-description 间歇性、非致命错误是否妨碍了复制进度,但不会导致失败。
- success:复制已成功完成。
- aborted:复制由 中止复制文件结束。
- failed:复制失败。 有关故障详细信息,请参阅 x-ms-copy-status-description

如果此文件从未成为 复制文件作中的目标,或者此文件在完成的 复制文件作后被修改,则不会显示此标头,该作使用 设置文件属性创建文件
x-ms-content-md5 从版本 2016-05-31 开始,如果文件具有 MD5 哈希,并且请求包含范围标头(rangex-ms-range),则返回此响应标头,其值为整个文件的 MD5 值。 此值可能等于 Content-MD5 标头中返回的值,该值是从请求的范围计算得出的。
x-ms-server-encrypted: true/false 版本 2017-04-17 及更高版本。 如果文件数据和应用程序元数据使用指定的算法完全加密,则此标头的值将设置为 true。 如果文件未加密,或者仅加密文件/应用程序元数据的一部分,该值将设置为 false
x-ms-file-creation-time 表示文件的创建时间属性的 UTC 日期/时间值。
x-ms-file-last-write-time 表示文件的上次写入时间属性的 UTC 日期/时间值。
x-ms-file-change-time 表示文件的更改时间属性的值的 UTC 日期/时间。
x-ms-file-file-id 文件的文件 ID。
x-ms-file-parent-id 文件的父文件 ID。
x-ms-lease-duration:infinite 版本 2019-02-02 及更高版本。 当文件被租用时,指定租约是无限持续时间。
x-ms-lease-state: <available, leased, broken> 版本 2019-02-02 及更高版本。 当文件租用时,指定文件的租约状态。
x-ms-lease-status: <locked, unlocked> 版本 2019-02-02 及更高版本。 租约文件时,指定文件的租约状态。
x-ms-client-request-id 可用于对请求及其相应的响应进行故障排除。 如果此标头存在于请求中,则此标头的值等于 x-ms-client-request-id 标头的值,并且该值包含不超过 1,024 个可见 ASCII 字符。 如果请求中不存在 x-ms-client-request-id 标头,则响应中不存在该标头。

仅 SMB 响应标头

响应标头 描述
x-ms-file-permission-key 版本 2019-02-02 及更高版本。 文件权限的密钥。
x-ms-file-attributes 版本 2019-02-02 及更高版本。 文件的文件系统属性。 有关详细信息,请参阅可用属性 列表。

仅 NFS 响应标头

响应标头 描述
x-ms-mode 版本 2025-05-05 及更高版本。 文件的模式。 请参阅 POSIX 文件权限(模式)
x-ms-owner 版本 2025-05-05 及更高版本。 文件所有者的用户标识符(UID)。
x-ms-group 版本 2025-05-05 及更高版本。 文件所有者的组标识符(GID)。
x-ms-link-count 版本 2025-05-05 及更高版本。 文件的链接计数。

响应正文

响应正文包含文件的内容。

示例响应

Response Status:
HTTP/1.1 200 OK

Response Headers:
x-ms-type: File
x-ms-meta-m1: v1
x-ms-meta-m2: v2
Content-Length: 11
Content-Type: text/plain; charset=UTF-8
Date: <date>
ETag: "0x8CB171DBEAD6A6B"
Last-Modified: <date>
x-ms-version: 2019-02-02
Server: Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0
x-ms-copy-id: 36650d67-05c9-4a24-9a7d-a2213e53caf6
x-ms-copy-source: <url>
x-ms-copy-status: success
x-ms-copy-progress: 11/11
x-ms-copy-completion-time: <date>
x-ms-lease-duration: infinite
x-ms-lease-state: leased
x-ms-lease-status: locked

授权

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

文件系统属性

属性 Win32 文件属性 定义
ReadOnly FILE_ATTRIBUTE_READONLY 只读文件。 应用程序可以读取文件,但无法写入文件或删除该文件。
隐藏 FILE_ATTRIBUTE_HIDDEN 文件已隐藏。 它不包括在普通目录列表中。
系统 FILE_ATTRIBUTE_SYSTEM 作系统使用部分或独占使用的文件。
没有 FILE_ATTRIBUTE_NORMAL 未设置其他属性的文件。 此属性仅在单独使用时才有效。
档案 FILE_ATTRIBUTE_ARCHIVE 作为存档文件的文件。 应用程序通常使用此属性标记文件以供备份或删除。
临时 FILE_ATTRIBUTE_TEMPORARY 用于临时存储的文件。
离线 FILE_ATTRIBUTE_OFFLINE 文件的数据不会立即可用。 此文件系统属性主要用于提供与 Windows 的兼容性。 Azure 文件不支持脱机存储选项。
NotContentIndexed FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 文件不会由内容索引服务编制索引。
NoScrubData FILE_ATTRIBUTE_NO_SCRUB_DATA 用户数据流不会由后台数据完整性扫描程序读取。 此文件系统属性主要用于提供与 Windows 的兼容性。

POSIX 文件权限(模式)

POSIX 文件权限可以用 12 位数字八进制格式或符号“rwx”格式进行数字指定。 例子:

  • “0644”或“rw-r--r--”:用户(文件所有者)具有读取、写入权限。 组具有读取权限。 其他人具有读取权限。
  • “0755”或“rwxr-xr-x”:用户(文件所有者)具有读取、写入和执行权限。 组具有读取和执行权限。 其他人具有读取和执行权限。

数字八进制格式

三个最低顺序八进制数表示所有者/用户、组和其他用户的权限,并使用八进制数(0-7)表示使用按位组合“4”(读取)、“2”(写入)、“1”(执行)。 最高阶八进制数(0-7)用于指示“4”(SetUID)、“2”(SetGID)、“1”(StickyBit)权限的组合。

格式 许可
0700 用户(文件所有者)具有读取、写入和执行权限。
0400 用户具有读取权限。
0200 用户具有写入权限。
0100 用户具有执行权限。
0070 组具有读取、写入和执行权限。
0040 组具有读取权限。
0020 组具有写入权限。
0010 组具有执行权限。
0007 其他人具有读取、写入和执行权限。
0004 其他人具有读取权限。
0002 其他人具有写入权限。
0001 其他人具有执行权限。
4000 在文件上设置有效的用户 ID。
2000 在文件上设置有效组 ID。
1000 设置为指示文件只能由文件所有者、目录所有者或根用户删除或重命名文件。

符号“rwx”格式

所有者/用户、组和其他用户的权限使用“r”(读取)、“w”(写入)和“x”(执行)字符的组合来指示。

格式 许可
rwx------ 用户(文件所有者)具有读取、写入和执行权限。
r-------- 用户具有读取权限。
-w------- 用户具有写入权限。
--x------ 用户具有执行权限。
---rwx--- 组具有读取、写入和执行权限。
---r----- 组具有读取权限。
----w---- 组具有写入权限。
-----x--- 组具有执行权限。
------rwx 其他人具有读取、写入和执行权限。
------r-- 其他人具有读取权限。
-------w- 其他人具有写入权限。
--------x 其他人具有执行权限。

言论

对尚未包含内容或已清除的范围调用 Get File 将返回这些字节 0

如果在未指定范围的情况下调用 Get File,则服务将返回的字节范围最多返回为 x-ms-content-length 标头指定的值。 对于缺少内容的任何范围,服务将返回这些字节的 0

允许每个 MiB 完成两分钟 Get File作。 平均每 MiB 需要两分钟以上的作超时。

另请参阅

对文件