软链接
更新时间:2023-05-18
创建软链接
本接口用于为BOS中相同bucket下已有的目的object(本文档称作"target object")创建软链接(Symlink),您可以通过该软链接访问目的object。相关API介绍见PutSymlink。
注意:
- 软链接文件和target object文件需要位于同一个bucket下面。
- 目前支持对标准存储、低频存储、冷存储、归档存储类型的object文件设置软链接。软链接文件本身不支持ARCHIVE类型。如果用户指定ARCHIVE类型,或者不指定类型且Bucket默认存储类型是ARCHIVE时,返回报错InvalidArgument。
- 调用该接口创建软链接时,不会检查目标文件是否存在、以及是否有权限访问目标文件。使用软链接调用GetObject接口时候,会检查用户是否有软链接和目标文件的读取权限、目标文件是否存在。
- 创建软链接需要有相应写权限。
- 如果不指定"forbid_overwrite",且如果存在与软链接文件同名的object文件时,创建软链接操作时会默认覆盖同名Object。
- 不支持二级软链接。用户创建二级软链时不会进行检查,但是用户无法通过二级软链访问指向的object数据。
创建软链接可选参数:
名称 | 类型 | 描述 | 是否必选 |
---|---|---|---|
forbid_overwrite | bool | 指定创建软链接操作时是否覆盖同名Object。如果不指定x-bce-forbid-overwrite时,默认允许覆盖同名Object。指定x-bce-forbid-overwrite为true时,表示禁止覆盖同名Object;指定x-bce-forbid-overwrite为false时,表示允许覆盖同名Object。 | 否 |
storage_class | string | 设置存储类型,软链接不支持归档类型。不设置时使用当前bucket的存储类型 | 否 |
target_bucket | string | 指定软链接的目标文件所在bucket,若不设置,则表示被创建的软链接与软链接目标文件在同一个bucket下。 | 否 |
示例如下:
symlink_key = "mySymlink"
bos_client.put_object_from_string(bucket_name, key, "This is string content.")
# 创建软链接示例1
bos_client.put_object_symlink(bucket_name, key, symlink_key)
# 创建软链接示例2
bos_client.put_object_symlink(bucket_name, key, symlink_key,
forbid_overwrite=Fasle, storage_class=storage_class.STANDARD)
# 创建软链接示例3 指定目标文件的 bucket
bos_client.put_object_from_string(bucket_name, target_key, "This is string content.")
bos_client.put_object_symlink(bucket_name, target_key, symlink_key, target_bucket=target_bucket)
获取软链接
接口用于获取软链接。此操作需要您对该软链接有读权限。
示例如下:
symlink_key = "mySymlink"
# 获取软链接,并打印目标文件
response = bos_client.get_object_symlink(bucket_name, symlink_key)
print(response.metadata.bce_symlink_target)
# 使用软链接获取元信息
response = bos_client.get_object_meta_data(bucket_name, symlink_key)
# 如果是软链接类型,返回bce_object_type = “Symlink”
print(response.metadata.bce_object_type)
# 使用软链接下载目的文件
content = bos_client.get_object_as_string(bucket_name, symlink_key)
print(content)