更新时间:2026-07-30 GMT+08:00
分享

软链接

类似于Windows的快捷方式,软链接(Symbolic Link)用于提高资源管理灵活性和访问便捷性。创建一个指向目标对象的软链接,打开软链接即可访问目标对象。软链接的使用场景主要有:

  • 对象迁移过渡期间的平滑衔接:当对象存储路径进行变更时,希望通过旧的路径继续访问,避免修改客户端代码。软链接可作为过渡方案,确保业务无感知。例如文件从old-path/file.txt迁移到new-path/file.txt,可创建一个软链接 old-path/file.txt 指向 new-path/file.txt,这样用户仍然可以通过 old-path/file.txt 访问到文件。
  • 提高文件访问灵活性,节省存储成本:通过创建多个软链接,可以为同一个文件设置多个访问路径,而无需复制文件本身。这不仅节省了存储成本,还简化了文件管理。
  • 文件更新时的无缝切换:当需要更新某个文件时,直接覆盖原文件可能导致短暂的不可用时间,或者需要复杂的切换逻辑,使用软链接可以实现无缝切换。例如您原先的文件是data/file.txt,后续修改后的新文件是data/new-file.txt,创建软链接data/file.txt指向data/new-file.txt,客户端可以继续通过 data/file.txt 访问到最新的内容,无需修改客户端业务逻辑。
  • 简化复杂路径的访问:复杂的对象路径不方便记忆或直接访问,通过创建一个简短的软链接,可以为复杂路径的文件提供一个简单的访问入口。

约束限制

  • 仅支持对象桶,不支持并行文件系统创建软链接。
  • 目标对象可以是对象、文件夹,但不能是软链接。
  • 软链接对象的对象名长度不能超过1024字节。
  • 软链接对象本身不支持服务器端加密。
  • 移动、删除目标对象后,您将无法访问该目标对象对应的软链接对象。
  • 不支持跨区域复制和同区域复制功能,即无法使用该功能复制软链接对象。
  • 软链接对象不支持目标CDN刷新,即软链接的目标对象变化不能通过软链接访问及时触发CDN刷新。

注意事项

  • 创建软链接时,如果同一路径下存在同名软链接,则旧链接会被新链接覆盖。
  • 创建软链接时,如果同一路径下存在同名的普通对象(非软链接),则普通对象会被软链接覆盖。开启多版本情况下,当前对象是新生成的软链接,普通对象会成为历史版本。
  • 软链接对象的etag值:将目标对象的对象名作为内容进行计算产生的etag。
  • 软链接对象的存储类别:软链接对象与普通对象一样也有标准、低频、归档和深度归档存储类别。软链接本身无需恢复操作(恢复软链接报错405,提示OperationNotSupported),但是如果软链接指向的目标对象是归档、深度归档对象,需要先恢复目标对象,才能通过软链接正常下载(GetObject)目标对象。
  • 软链接对象加入桶清单的统计范围:桶存量统计时,将软链接对象与普通对象做一样的统计处理,软链接对象的对象大小为目标对象的对象名长度。
  • 跨桶复制软链接对象,如果目标桶中也存在与源桶中同名的目标对象,目标桶中的软链接对象也能正常访问目标桶中的目标对象。

相关权限

表1 软链接操作相关权限

操作

需要的权限

创建软链接

需要PutObject权限,创建软链接不会校验您对目标对象是否有访问权限。

通过软链接访问目标对象

通过HeadObject/GetObject接口访问,软链接的访问权限遵循最小权限原则,需要同时拥有软链接对象和目标对象的GetObject权限。

获取软链接对象本身的信息

通过获取软链接GetSymlink接口访问,需要GetObject权限。

复制软链接

需要GetObject、PutObject权限,复制操作不支持修改,即不能通过头域重新设置软链接指向的目标对象

删除软链接

需要DeleteObject权限,删除目标对象和删除软链接相互独立,不会互相影响。

建议使用IAM或桶策略进行授权,相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略配置对象策略

与多版本结合

桶开启多版本控制后,软链接对象也可以拥有多个版本,每个版本都有唯一的VersionID,且当前版本和历史版本都可以指向一个目标对象。需要注意的是,如果指向的目标对象也拥有多个版本,软链接只能指向目标对象的最新版本,无法指向目标对象的历史版本。

图1 软链接与多版本结合

软链接相关操作

相关文档