本文介绍软链接对象在 Linux 系统、对象存储 TOS 的实现机制和使用建议,以支持您在 Linux 系统中正确访问和使用软链接对象。
通过 FSX 客户端将存储桶挂载到 Linux 系统后,由于 TOS 控制台和标准文件系统对软链接对象的使用方式不同,可能无法识别 TOS 中软链接对象指向的目标文件路径。对于软链接对象,TOS 控制台、TOS API、标准文件系统的实现机制说明如下:
在标准 Linux 文件系统中,访问软链接对象时,其路径解析方式如下:
/ 开始,对目标路径进行逐级解析和目录查找,直至定位到最终的目标文件。在 TOS 控制台创建的软链接对象指向的目标对象是相对于桶根目录的路径,挂载到 ECS 实例后,该软链接对象在文件系统中表现为一个符号链接,其指向的目标路径会被解析为以存储桶为根目录的文件路径。
TOS API 支持创建软链接,实现了类似标准文件系统的路径引用功能。将存储桶挂载到 ECS 实例后,通过 TOS API 创建的软链接对象所指向的目标路径会被解析为从软链接所在目录开始的相对路径。
将存储桶挂载到 ECS 实例后,标准文件系统无法解析通过 TOS 控制台创建的软链接对象指向的目标文件路径,而通过 TOS API 创建的软链接则可以被正常访问。如果您希望在 Linux 系统访问存储桶中的软链接对象,则您需要通过 TOS API 来创建软链接对象,以确保其语义能被正确识别和解析,详细介绍,请参见PutSymlink。
在本场景中,调用 PutSymlink 接口创建软链接对象时,软链接指向的目标文件(即 x-tos-symlink-target 参数)需要填写为该文件在 Linux 系统中的相对路径,您可以通过 Python 计算目标文件路径,即 x-tos-symlink-target 参数值,示例如下:
注意
如果您仅将桶的某个前缀挂载到 ECS 实例,软链接对象和其指向的目标对象必须位于该桶前缀下,否则在 Linux 系统访问软链接对象会失败。