
# 创建软链接-PutSymlink
#### 功能介绍
调用本接口可以为指定对象创建软链接，您可以通过该软链接访问目标对象。
#### 注意事项
- 未开启多版本，创建软链接时，如果同一路径下存在同名软链接，则旧链接会被新链接覆盖。开启多版本时，旧链接会变为历史版本，新上传的软链接成为当前版本。
- 未开启多版本，创建软链接时，如果同一路径下存在同名对象（非链接），则对象会被软链接覆盖。开启多版本时，旧对象会变为历史版本，新上传的软链接成为对象的当前版本。
 
#### 版本控制
开启多版本控制后，同一目标对象可能存在多个版本（如v1、v2），软链接只能指向目标对象的最新版本。
开启多版本控制后，软链接本身也可以有多个版本，每个版本拥有自己的VersionID（版本ID），每个不同的版本可以指向不同的目标对象。
#### 授权信息
您必须是桶拥有者或拥有创建软链接的权限，才能调用本接口，建议使用IAM或桶策略进行授权。了解更多OBS授权方式请参见[OBS不同权限控制方式的区别](https://support.huaweicloud.com/perms-cfg-obs/obs_40_0001.html)。
- 如果使用**IAM授权** ，那么请在"角色与策略授权"、"身份策略授权"两种IAM授权方式中选择一种，并配置相应权限：
  - 如果使用**角色与策略授权** （旧版IAM，即IAM v3接口），需具备**obs:object:PutObject** 权限，授权操作请参见[创建IAM自定义策略](https://support.huaweicloud.com/usermanual-iam/iam_01_0605.html)。
  
  - 如果使用**身份策略授权** （新版IAM，即IAM v5接口），如下表所示，需具备**obs:object:putObject** 权限，授权操作请参见[创建IAM自定义身份策略](https://support.huaweicloud.com/usermanual-iam5/iam_01_0917.html)。
    
    | 授权项 Action | 访问级别 Access Level | 资源类型（\*为必须） Resource Type (\*: required) | [条件键](https://support.huaweicloud.com/api-obs/obs_04_0112.html#ZH-CN_TOPIC_0000002375307974__condition_table) Condition Key                                                                                                                                                                                                                                                                                                                                                                                                                                                 | [别名](https://support.huaweicloud.com/iam5_faq/iam_01_1103.html) Alias | 依赖的授权项 Dependencies                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
    |:---|:---|:---|:---|:---|:---|
    | obs:object:putObject                                      | Permission_management                                            | object \*                                                                              | [g:EnterpriseProjectId](https://support.huaweicloud.com/usermanual-iam5/iam_01_0934.html#section2)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | -                                                                                                                  | - kms:cmk:create  - kms:cmk:list  - kms:cmk:createDataKey  - functiongraph:function:invokeAsync  - functiongraph:workflow:invoke  - smn:topic:publish   |
    | obs:object:putObject                                      | Permission_management                                            | -                                                                                      | - obs:EpochTime  - obs:SourceIp  - obs:TlsVersion  - obs:CustomDomain  - obs:x-obs-acl   | -                                                                                                                  | - kms:cmk:create  - kms:cmk:list  - kms:cmk:createDataKey  - functiongraph:function:invokeAsync  - functiongraph:workflow:invoke  - smn:topic:publish   |
       
    
   
- 如果使用**桶策略** 进行授权，需具备**obs:object:PutObject** 权限，具体操作请参见[自定义创建桶策略](https://support.huaweicloud.com/usermanual-obs/obs_03_0123.html)。
 
#### URI
PUT /
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-obs/obs_04_0006.html)。调用前需要先[计算API签名](https://support.huaweicloud.com/api-obs/obs_04_0009.html)，并将签名添加到请求中。
#### 请求消息样式
```
PUT /objectName?symlink HTTP/1.1
Host: bucketname.obs.cn-north-4.myhuaweicloud.com 
Date: Date
Authorization: SignatureValue
x-obs-symlink-target: TargetObjectName
```
#### URI参数（URI Parameters）
表1URI参数 
| 参数      | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|:---|
| symlink | 是    | String | **参数解释**： 用于标识API接口与软链接有关。 **约束限制**： 计算签名时，请在CanonicalizedResource中添加"/*BucketName* /*ObjectName* ?symlink"，详情参见[签名计算](https://support.huaweicloud.com/api-obs/obs_04_0010.html)。 **取值范围**： symlink **默认取值**： 不涉及 |
   
#### 请求头参数（Request headers）
该请求使用的消息头如[表2]所示。
 表2请求头参数（Request headers） 
| 消息头名称                | 消息头类型  | 是否必选 | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|:---|
| x-obs-acl            | String | 否    | **参数解释：** 创建软链接时，可以加上此消息头设置对象的权限控制策略，使用的策略为预定义的常用策略。 **约束限制**： 预定义策略需要以字符串形式呈现。 **取值范围：** - private：私有  - public-read：公共读  - public-read-write：公共读写   各策略详细说明见[ACL](https://support.huaweicloud.com/perms-cfg-obs/obs_40_0005.html)。 **默认取值：** private                                                                                                                                              |
| x-obs-symlink-target | String | 是    | **参数解释：** 软链接指向的目标对象。 **约束限制**： 需要对目标对象名进行URL编码。 **取值范围**： 长度大于0且不超过1024的字符串。 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| x-obs-storage-class  | String | 否    | **参数解释：** 指定软链接的存储类型。 **约束限制：** 建议不要将软链接的存储类型指定为COLD或DEEP_ARCHIVE。 **取值范围**： - STANDARD：标准存储  - WARM：低频访问存储  - COLD：归档存储  - DEEP_ARCHIVE：深度归档存储   **默认取值：** 如果未设置此参数，软链接默认继承桶的存储类别。                                                                                                                                                          |
| x-obs-meta-\*        | String | 否    | **参数解释：** 软链接的自定义元数据。创建软链接时，可以在HTTP请求中加入以"x-obs-meta-"开头的消息头，用来加入自定义的元数据，以便对软链接进行自定义管理。当用户获取此软链接或查询此软链接元数据时，加入的自定义元数据将会在返回消息的消息头中出现。更多说明详见[对象自定义元数据介绍](https://support.huaweicloud.com/usermanual-obs/obs_03_0324.html)。 **约束限制：** - 一个软链接可以有自定义元数据，但所有自定义元数据总大小不能超过8KB。  - 自定义元数据的key值不区分大小写，OBS统一转为小写进行存储。value值区分大小写。  - 自定义元数据key-value对都必须符合US-ASCII。如果一定要使用非ASCII码或不可识别字符，需要客户端自行做编解码处理，可以采用URL编码或者Base64编码，服务端不会做解码处理。   **取值范围**： 不涉及 **默认取值：** 不涉及 |
   
#### 响应消息样式
```
HTTP/1.1 status_code
Content-Length: length
Content-Type: type
```
#### 响应头 (Response Headers)
该请求的响应消息使用公共响应头，具体请参考[表1](https://support.huaweicloud.com/api-obs/obs_04_0013.html#ZH-CN_TOPIC_0173612084__d0e686)。
#### 请求示例：创建软链接
```
PUT /link-to-obs.jpg?symlink HTTP/1.1 
User-Agent: curl/7.29.0
Host: bucketname.obs.cn-north-4.myhuaweicloud.com 
Cache-control: no-cache 
Content-Disposition: attachment;filename=obs_download.jpg 
Date: Tue, 08 Nov 2016 02:00:25 GMT 
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:gYqplLq30dEX7GMi2qFWyjdFsyw=
x-obs-symlink-target: target-object-name
x-obs-storage-class: Standard
```
#### 响应示例：创建软链接
```
HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: BB7800000164845759E4F3B39ABEE55E
ETag: "d41d8cd98f00b204e9800998ecf8427e"
x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSReVRNuas0knI+Y96iXrZA7BLUgj06Z
Date: Wed, 01 Jul 2015 04:13:55 GMT
Content-Length: 0
```
#### 请求示例：创建软链接时同时设置ACL
```
PUT /link-to-obs.jpg?symlink HTTP/1.1 
User-Agent: curl/7.29.0
Host: bucketname.obs.cn-north-4.myhuaweicloud.com 
Cache-control: no-cache 
Content-Disposition: attachment;filename=obs_download.jpg 
Date: Tue, 08 Nov 2016 02:00:25 GMT 
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:gYqplLq30dEX7GMi2qFWyjdFsyw=
x-obs-symlink-target: target-object-name
x-obs-acl: private
```
#### 响应示例：创建软链接时同时设置ACL
```
HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: BB7800000164845759E4F3B39ABEE55E
ETag: "d41d8cd98f00b204e9800998ecf8427e"
x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSReVRNuas0knI+Y96iXrZA7BLUgj06Z
Date: Wed, 01 Jul 2015 04:13:55 GMT
Content-Length: 0
```
#### 请求示例：创建软链接时同时设置自定义元数据
```
PUT /link-to-obs.jpg?symlink HTTP/1.1 
User-Agent: curl/7.29.0
Host: bucketname.obs.cn-north-4.myhuaweicloud.com 
Cache-control: no-cache 
Content-Disposition: attachment;filename=obs_download.jpg 
Date: Tue, 08 Nov 2016 02:00:25 GMT 
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:gYqplLq30dEX7GMi2qFWyjdFsyw=
x-obs-symlink-target: target-object-name
Content-Type:application/zip
x-obs-meta-test:meta
```
#### 响应示例：创建软链接时同时设置自定义元数据
```
HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: BB7800000164845759E4F3B39ABEE55E
ETag: "d41d8cd98f00b204e9800998ecf8427e"
x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSReVRNuas0knI+Y96iXrZA7BLUgj06Z
Date: Wed, 01 Jul 2015 04:13:55 GMT
Content-Length: 0
```
