软链接
更新时间:2026-09-23
创建软链接
本接口用于为 BOS 中已有的目标 Object(本文档称为 "target object")创建软链接(Symlink),您可以通过该软链接访问目标 Object。相关 API 介绍见 PutSymlink。
运行以下示例前,请先参考初始化完成 BOS Client 初始化,并将示例中的 bucket_name 等替换为实际值。
注意:
- 默认情况下,软链接文件与 target object 需位于同一个 Bucket 下;如需指向其他 Bucket,可通过
target_bucket指定。- 支持对标准存储、低频存储、冷存储、归档存储类型的 Object 创建软链接。但软链接文件本身不支持
ARCHIVE(归档)类型。若指定storage_class为ARCHIVE,或不指定且 Bucket 默认存储类型为ARCHIVE时,服务端返回InvalidArgument错误。- 创建软链接时,不会检查目标文件是否存在、以及是否有权限访问目标文件。使用软链接调用 GetObject 时,才会检查是否有软链接和目标文件的读取权限、目标文件是否存在。
- 创建软链接需要相应的写权限。
- 若不指定
forbid_overwrite,当存在与软链接同名的 Object 时,创建软链接会默认覆盖同名 Object。- 不支持二级软链接。创建二级软链接时不会报错,但无法通过二级软链接访问其指向的 Object 数据。
创建软链接的可选参数:
| 参数 | 类型 | 说明 | 必填 |
|---|---|---|---|
forbid_overwrite |
bool | 是否禁止覆盖同名 Object。不指定时默认允许覆盖;设为 True 表示禁止覆盖同名 Object;设为 False 表示允许覆盖。 |
否 |
user_metadata |
dict | 软链接的用户自定义元信息,键值对形式。所有 User Meta 总大小不能超过 2KB。 | 否 |
storage_class |
str | 软链接的存储类型,不支持归档类型。不设置时使用 Bucket 的默认存储类型。 | 否 |
target_bucket |
str | 目标 Object 所在的 Bucket。不设置时表示软链接与目标 Object 位于同一 Bucket。 | 否 |
content_type |
str | 软链接的 Content-Type。不设置时由 SDK 根据软链接名称自动推断。 |
否 |
示例如下:
Python
1from baidubce.services.bos import storage_class
2
3symlink_key = 'my-symlink'
4
5# 先上传一个目标 Object
6bos_client.put_object_from_string(bucket_name, object_key, "This is string content.")
7
8# 示例 1:为目标 Object 创建软链接
9bos_client.put_object_symlink(bucket_name, object_key, symlink_key)
10
11# 示例 2:指定禁止覆盖与存储类型
12bos_client.put_object_symlink(bucket_name, object_key, symlink_key,
13 forbid_overwrite=False, storage_class=storage_class.STANDARD)
14
15# 示例 3:指定目标 Object 所在的 Bucket
16target_bucket = 'another-bucket-name'
17bos_client.put_object_symlink(bucket_name, object_key, symlink_key, target_bucket=target_bucket)
提示:
put_object_symlink的第二个参数为目标 Object 名称(target_key),第三个参数为软链接名称(symlink)。
获取软链接
本接口用于获取软链接信息,此操作需要您对该软链接有读权限。
Python
1symlink_key = 'my-symlink'
2
3# 获取软链接,并打印其指向的目标 Object
4response = bos_client.get_object_symlink(bucket_name, symlink_key)
5print(response.metadata.bce_symlink_target)
6
7# 通过软链接获取元信息;若为软链接类型,bce_object_type 返回 "Symlink"
8response = bos_client.get_object_meta_data(bucket_name, symlink_key)
9print(response.metadata.bce_object_type)
10
11# 通过软链接下载目标 Object 内容
12content = bos_client.get_object_as_string(bucket_name, symlink_key)
13print(content)
方法说明
| 方法 | 返回值 | 说明 |
|---|---|---|
bos_client.put_object_symlink(bucket_name, target_key, symlink, ...) |
BceResponse |
创建软链接。 |
bos_client.get_object_symlink(bucket_name, symlink) |
BceResponse |
获取软链接信息。 |
评价此篇文章
