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

创建文件

Create File作将创建新文件或替换文件。 在版本 2025-05-05 及更高版本中支持此作,以启用 NFS 协议的文件共享。 调用 Create File时,仅初始化该文件。 若要向文件添加内容,请调用 Put Range作。

协议可用性

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

请求

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

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

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

路径组件 描述
myaccount 存储帐户的名称。
myshare 文件共享的名称。
mydirectorypath 自选。 要在其中创建文件的目录的路径。 如果省略目录路径,则会在指定的共享中创建该文件。

如果指定了目录,则必须先存在于共享中,然后才能创建该文件。
myfile 要创建的文件的名称。

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

URI 参数

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

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

请求标头

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

常见请求标头

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

有关详细信息,请参阅 azure 存储服务 版本控制。
Content-Length 自选。 如果存在,则必须为零。
x-ms-content-length: byte value 必填。 此标头指定文件的最大大小,最大大小为 4 字节(TiB)。
Content-Typex-ms-content-type 自选。 文件的 MIME 内容类型。 默认类型为 application/octet-stream
Content-Encodingx-ms-content-encoding 自选。 指定哪些内容编码已应用于文件。 当对文件资源执行 获取文件作时,此值将返回到客户端,并且你可以使用它解码文件内容。
Content-Languagex-ms-content-language 自选。 指定此资源使用的自然语言。
Cache-Controlx-ms-cache-control 自选。 Azure 文件存储此值,但不使用它或修改该值。
x-ms-content-md5 自选。 设置文件的 MD5 哈希。
x-ms-content-disposition 自选。 设置文件的 Content-Disposition 标头。
x-ms-type: file 必填。 将此标头设置为 file
x-ms-meta-name:value 自选。 与文件关联的名称/值对作为元数据。 元数据名称必须遵循 C# 标识符的命名规则。

注意:无法从服务器消息块(SMB)客户端访问通过 Azure 文件指定的文件元数据。
x-ms-file-creation-time: { now ¦ <DateTime> } 必需:版本 2019-02-02 到 2021-04-10。 可选:版本 2021-06-08 及更高版本。 文件的协调世界时 (UTC) 创建时间属性。 可以使用 now 值来指示请求的时间。 默认值为 now
x-ms-file-last-write-time: { now ¦ <DateTime> } 必需:版本 2019-02-02 到 2021-04-10。 可选:版本 2021-06-08 及更高版本。 文件的协调世界时 (UTC) 最后一个写入属性。 可以使用 now 值来指示请求的时间。 默认值为 now
x-ms-lease-id:<ID> 如果文件具有活动租约,则为必需。 适用于版本 2019-02-02 及更高版本。

如果文件位于启用了 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 请求标头

请求标头 描述
x-ms-file-change-time: { now ¦ <DateTime> } 自选。 版本 2021-06-08 及更高版本。 文件的协调世界时(UTC)更改时间属性,格式为 ISO 8601。 可以使用 now 值来指示请求的时间。 默认值为 now
x-ms-file-permission: { inherit ¦ <SDDL> ¦ <binary> } 在版本 2019-02-02 到 2021-04-10 中,如果未指定 x-ms-file-permission-key,则需要此标头。 从版本 2021-06-08 起,这两个标头都是可选的。 此权限是在 base64 编码 二进制安全描述符格式安全描述符定义语言(SDDL) 或版本(版本 2024-11-04 或更高版本)中指定的文件的安全描述符。 可以指定要用于 x-ms-file-permission-format 标头的格式。 如果权限大小为 8 kibibytes(KiB)或更少,则可以使用此标头。 否则,可以使用 x-ms-file-permission-key。 如果指定标头,它必须具有所有者、组和 自由访问控制列表(DACL)。 可以传递 inherit 的值,以便从父目录继承。
x-ms-file-permission-format: { sddl ¦ binary } 自选。 版本 2024-11-04 或更高版本。 指定传入 x-ms-file-permission 的值是采用 SDDL 还是二进制格式。 如果 x-ms-file-permission 设置为 inherit,则不应设置此标头。 如果 x-ms-file-permission 设置为除 inherit以外的任何其他值,并且未设置此标头,则使用 sddl 的默认值。
x-ms-file-permission-key: <PermissionKey> 在版本 2019-02-02 到 2021-04-10 中,如果未指定 x-ms-file-permission,则需要此标头。 从版本 2021-06-08 起,这两个标头都是可选的。 如果未指定两个标头,则 inherit 的默认值用于 x-ms-file-permission 标头。

可以通过调用 Create Permission API 来创建密钥。
x-ms-file-attributes 必需:版本 2019-02-02 到 2021-04-10。 可选:版本 2021-06-08 及更高版本。 此标头包含要对文件设置的文件系统属性。 有关详细信息,请参阅 可用属性的列表。 默认值为 None

仅 NFS 请求标头

请求标头 描述
x-ms-mode 自选。 版本 2025-05-05 及更高版本。 要对文件设置的模式位。 模式以 12 位数字八进制格式或符号“rwx”格式表示。 默认值为 0644。 请参阅 POSIX 文件权限(模式)
x-ms-owner 自选。 版本 2025-05-05 及更高版本。 要对文件设置的文件所有者的用户标识符(UID)。 默认值为 0(root)。
x-ms-group 自选。 版本 2025-05-05 及更高版本。 要对文件设置的文件所有者的组标识符(GID)。 默认值为 0(根组)。
x-ms-file-file-type 自选。 版本 2025-05-05 及更高版本。 文件的类型。 如果存在,则必须为“常规”。

请求正文

没有。

示例请求

Request Syntax:  
PUT https://myaccount.file.core.windows.net/myshare/myfile HTTP/1.1  
  
Request Headers:  
x-ms-version: 2020-02-10
x-ms-date: Mon, 27 Jan 2014 22:41:55 GMT  
Content-Type: text/plain; charset=UTF-8  
x-ms-content-length: 1024  
Authorization: SharedKey myaccount:YhuFJjN4fAR8/AmBrqBz7MG2uFinQ4rkh4dscbj598g=  

响应

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

状态代码

成功的操作返回状态代码 201(已创建)。 有关状态代码的信息,请参阅 状态和错误代码

响应标头

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

常见响应标头

响应标头 描述
ETag ETag 包含一个值,该值表示文件的版本。 该值用引号引起来。
Last-Modified 返回上次修改文件的日期和时间。 日期格式遵循 RFC 1123。 有关详细信息,请参阅 表示标头中的日期/时间值。

修改目录或其属性的任何操作将更新上次修改时间。 对文件的操作不会影响目录的上次修改时间。
x-ms-request-id 唯一标识已发出的请求,并可用于对请求进行故障排除。 有关详细信息,请参阅 API作疑难解答
x-ms-version 指示用于执行请求的 Azure 文件版本。
Date 由服务生成的 UTC 日期/时间值,该值指示启动响应的时间。
x-ms-request-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-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-file-file-type 版本 2025-05-05 及更高版本。 该文件的类型,可能的值是:“Regular”。

响应正文

没有。

示例响应

Response Status:  
HTTP/1.1 201 Created  
  
Response Headers:  
Transfer-Encoding: chunked  
Date: Mon, 27 Jan 2014 23:00:12 GMT  
ETag: "0x8CB14C3E29B7E82"  
Last-Modified: Mon, 27 Jan 2014 23:00:06 GMT  
x-ms-version: 2014-02-14  
Server: Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0  

授权

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

文件系统属性

属性 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 其他人具有执行权限。

言论

若要创建新文件,请先通过调用 Create File 并指定其最大大小(最多 4 TiB)来初始化它。 执行此操作时,请不要在请求正文中包含内容。 创建文件后,调用 Put Range 将内容添加到文件或对其进行修改。

可以通过调用 Set File Properties来更改文件大小。

如果共享或父目录不存在,则该操作将失败,状态代码为 412(前置条件失败)。

注意

文件属性 cache-controlcontent-typecontent-md5content-encodingcontent-language 独立于 SMB 客户端可用的文件系统属性。 SMB 客户端无法读取、写入或修改这些属性值。

若要创建该文件,如果现有文件具有活动租约,客户端必须在请求中指定有效的租约 ID。 如果客户端未指定租约 ID 或指定无效的租约 ID,Azure 文件将返回状态代码 412(前置条件失败)。 如果客户端指定租约 ID 但文件没有活动租约,则 Azure 文件在此实例中也返回状态代码 412(前置条件失败)。 如果客户端在尚不存在的文件上指定租约 ID,则 Azure 文件会针对针对版本 2019-02-02 及更高版本发出的请求返回状态代码 412(先决条件失败)。

如果具有活动租约的现有文件被 Create File作覆盖,则租约将保留在更新的文件上,直到它释放为止。

共享快照不支持 Create File,这是共享的只读副本。 尝试对共享快照执行此操作失败,状态代码为 400(InvalidQueryParameterValue)。

另请参阅

对文件