你当前正在访问 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 存储的请求。 |
Date 或 x-ms-date |
必需。 为请求指定协调世界时 (UTC) 时间。 有关详细信息,请参阅授权对 Azure 存储的请求。 |
x-ms-version |
对于所有已授权的请求是必需的。 指定用于此请求的操作的版本。 有关详细信息,请参阅 Azure 存储服务的版本控制。 |
Content-Length |
可选。 如果存在,则必须为零。 |
x-ms-content-length: byte value |
必需。 此标头指定文件的最大大小,最多 4 tb (TiB) 。 |
Content-Type 或 x-ms-content-type |
可选。 文件的 MIME 内容类型。 默认类型为 application/octet-stream 。 |
Content-Encoding 或 x-ms-content-encoding |
可选。 指定对文件应用了哪种内容编码。 对文件资源执行 “获取文件” 操作时,此值将返回到客户端,你可以使用它解码文件内容。 |
Content-Language 或 x-ms-content-language |
可选。 指定此资源使用的自然语言。 |
Cache-Control 或 x-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> } |
在版本 2019-02-02 到 2021-04-10 中,如果未 x-ms-file-permission-key 指定 ,则需要此标头。 从版本 2021-06-08 起,这两个标头都是可选的。 此权限是安全描述符 定义语言 (SDDL) 中指定的文件的安全描述符 。 如果权限大小为 8 kiB () 或更小,则可以使用此标头。 否则,可以使用 x-ms-file-permission-key 。 如果指定标头,则它必须具有所有者、组和 可自由访问控制列表 (DACL) 。 可以传递 值 inherit 以从父目录继承。 |
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-kiB (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/action Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action ,如果 或 包含在分配给使用 标头授权的标识的 RBAC 策略中,则应授予 或Authorization 。 适用于版本 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 |
用于对请求及其相应响应进行故障排除。 如果请求中存在此标头的值,并且该值包含不超过 1,024 个可见 ASCII 字符,则此标头的值等于该标头的值 x-ms-client-request-id 。 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
授权
只有帐户所有者可以调用此操作。
文件系统属性
Attribute | Win32 文件属性 | 定义 |
---|---|---|
ReadOnly | FILE_ATTRIBUTE_READONLY | 只读文件。 应用程序可以读取文件,但无法写入或删除文件。 |
Hidden | FILE_ATTRIBUTE_HIDDEN | 文件被隐藏。 它不包括在普通目录列表中。 |
系统 | FILE_ATTRIBUTE_SYSTEM | 操作系统使用的一部分或独占使用的文件。 |
无 | FILE_ATTRIBUTE_NORMAL | 未设置其他属性的文件。 此属性仅在单独使用时有效。 |
存档 | FILE_ATTRIBUTE_ARCHIVE | 作为存档文件的文件。 应用程序通常使用此属性来标记要备份或删除的文件。 |
临时 | FILE_ATTRIBUTE_TEMPORARY | 用于临时存储的文件。 |
Offline | 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-control
、 content-type
、 content-md5
、 content-encoding
和 content-language
独立于 SMB 客户端可用的文件系统属性。 SMB 客户端无法读取、写入或修改这些属性值。
若要创建文件,如果现有文件具有活动租约,客户端必须在请求中指定有效的租约 ID。 如果客户端未指定租约 ID 或指定无效的租约 ID,Azure 文件存储返回状态代码 412 (先决条件失败) 。 如果客户端指定租约 ID,但文件没有活动租约,Azure 文件存储将在此实例中返回状态代码 412 (先决条件失败) 。 如果客户端在尚不存在的文件上指定租约 ID,Azure 文件存储针对版本 2019-02-02 及更高版本发出的请求返回状态代码 412 (先决条件失败) 。
如果操作覆盖 Create File
了具有活动租约的现有文件,则租约将保留在更新的文件上,直到它被释放。
Create File
共享快照不受支持,共享是共享的只读副本。 尝试对共享快照执行此操作失败,状态代码为 400 (InvalidQueryParameterValue) 。