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

创建文件

Create File 操作将创建新文件或替换文件。 调用 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 所有授权请求都是必需的。 指定要用于此请求的操作的版本。 有关详细信息,请参阅 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-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-key 设置为 inherit,则不应设置此标头。 如果 x-ms-file-permission-key 设置为除 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
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 及更高版本。
x-ms-client-request-id 自选。 提供客户端生成的不透明值,该值具有配置日志记录时日志中记录的 1-kibibyte (KiB) 字符限制。 强烈建议使用此标头将客户端活动与服务器接收的请求相关联。 有关详细信息,请参阅 监视 Azure 文件
x-ms-file-change-time: { now ¦ <DateTime> } 自选。 版本 2021-06-08 及更高版本。 文件的协调世界时(UTC)更改时间属性,格式为 ISO 8601。 可以使用 now 值来指示请求的时间。 默认值为 now
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 中存在的尾随点。 有关详细信息,请参阅 命名和引用共享、目录、文件和元数据

请求正文

没有。

示例请求

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-permission-key 文件权限的密钥。
x-ms-file-attributes 文件上的文件系统属性。 有关详细信息,请参阅可用属性的列表。
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 标头,则响应中不存在该标头。

响应正文

没有。

示例响应

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 的兼容性。

言论

若要创建新文件,请先通过调用 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)。

另请参阅

Azure 文件存储 上的 操作