创建硬链接

Create Hard Link作会创建指向现有文件的新硬链接。 仅在启用了 NFS 协议的文件共享版本 2025-05-05 及更高版本中才支持此作。

协议可用性

已启用文件共享协议 可用
中小型企业 (SMB) 无
网络文件系统(NFS) 是

请求

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

方法 请求 URI HTTP 版本
https://myaccount.file.core.windows.net/myshare/mydirectorypath/myhardlink?restype=hardlink HTTP/1.1

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

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

如果指定了目录,则必须先存在于共享中,然后才能创建硬链接。
myhardlink 要创建的硬链接的名称。

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

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 自选。 如果存在,则必须为零。
x-ms-type: file 必填。 将此标头设置为 file
x-ms-file-target-file:path 必填。 指定将创建硬链接的目标文件的绝对路径,长度最多为 2 KiB。 它应该是目标文件从同一共享的根目录开始的完整/绝对路径或目标文件的完整 URI。

以下是目标文件路径的一些示例:
  • mydirectorypath/myfile
  • https://myaccount.file.core.windows.net/myshare/mydirectorypath/myfile
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 协议的文件共享上,则默认支持尾随点,则忽略此标头。

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

请求正文

没有。

示例请求

Request Syntax:
PUT https://myaccount.file.core.windows.net/myshare/myhardlink?restype=hardlink HTTP/1.1

Request Headers:
x-ms-version: 2025-05-05
x-ms-date: Wed, 20 Nov 2024 09:17:09 GMT
x-ms-type: file
x-ms-file-target-file: mydir/myfile
Authorization: SharedKey myaccount:YhuFJjN4fAR8/AmBrqBz7MG2uFinQ4rkh4dscbj598g=

响应

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

状态代码

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

响应标头

此作的响应包括下表中的标头:

常见响应标头

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

修改目录或其属性的任何作将更新上次修改时间。 对文件的作不会影响目录的上次修改时间。
x-ms-request-id 唯一标识已发出的请求,并可用于对请求进行故障排除。 有关详细信息,请参阅 API作疑难解答
x-ms-version 指示用于执行请求的 Azure 文件版本。
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 标头,则响应中不存在该标头。
x-ms-mode 文件的模式。 请参阅 POSIX 文件权限(模式)
x-ms-owner 文件所有者的用户标识符(UID)。
x-ms-group 文件所有者的组标识符(GID)。
x-ms-link-count 文件的链接计数。
x-ms-file-file-type 文件的类型,可能的值为:Regular

响应正文

没有。

示例响应

Response Status:
HTTP/1.1 201 Created

Response Headers:
Date: Wed, 20 Nov 2024 09:17:08 GMT
ETag: "0x8DD09441C5DB27A"
Last-Modified: Wed, 20 Nov 2024 09:17:09 GMT
x-ms-version: 2025-05-05
Server: Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0

授权

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

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-- 其他人具有读取权限。
------- 其他人具有写入权限。
--------x 其他人具有执行权限。

言论

如果共享不存在,则该作将失败,状态代码为 404/“未找到”(ShareNotFound)。

如果硬链接或目标文件的父目录不存在,则该作将失败,状态代码为 404/“未找到”(ParentNotFound)。

如果目标文件不存在,则该作将失败,状态代码为 404/“找不到”(ResourceNotFound)。

如果要创建的硬链接已存在,或者路径指向已存在的资源,则该作将失败,状态代码为 409/'Conflict' (ResourceAlreadyExists)。

由于只能为文件创建硬链接,如果标头 x-ms-target-file 不指向文件,则请求将失败,状态代码为 400/“错误的请求”。

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

另请参阅

对文件