
# 分享Token - ShareToken
通过调用[获取分享Token]，可以获取临时Token，用户只要使用该临时Token即可访问文件，不用再使用"access-token"进行鉴权。
分享Token分为如下2个步骤：
1. [获取分享Token]，获取临时Token。
2. [查看分享对象文件]，使用临时Token访问文件。
 #### 获取分享Token
- 功能介绍 用于获取临时Token，使用该Token可访问文件，不用再使用"access-token"进行鉴权。获取的Token是临时性的，存在有效期。
  
- URI POST*华为云Astro轻应用* *域名*/u-route/baas/sys/v1.1/connectors/{connector_type}/{connector_name}/sharetoken
  表1路径参数 
  | 参数             | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
  |:---|:---|:---|:---|
  | connector_type | 是    | String | **参数解释**： 连接器的类型。 **约束限制**： 不涉及。 **取值范围**： - obs：与OBS对接的连接器。  - minio：与MINIO对接的连接器。  - objectstorageproxy：对象存储代理类型。   **默认取值**： 不涉及。 |
  | connector_name | 是    | String | **参数解释**： 连接器实例的名称，即创建连接器时设置的连接器实例名。 **约束限制**： 不涉及。 **取值范围**： 不涉及。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                           |
     
  
- 请求参数
  表2请求body参数 
  | 参数               | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
  |:---|:---|:---|:---|
  | shareType        | 是    | Integer | **参数解释**： 分享类型。 **约束限制**： 不涉及。 **取值范围**： - 0：代表按文件分享。  - 1：代表按目录分享。  - 2：用字符数组表示多个文件路径。   **默认取值**： 不涉及。 |
  | key              | 否    | String  | **参数解释**： 分享的对象、目录。 **约束限制**： 如果是目录，必须以"/"结尾。 **取值范围**： 不涉及。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                    |
  | keys             | 否    | String  | **参数解释**： 多个文件路径。 **约束限制**： 不涉及。 **取值范围**： 不涉及。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                              |
  | timeoutInMinutes | 是    | Integer | **参数解释**： 分享的有效期，单位为分钟。 **约束限制**： 不涉及。 **取值范围**： 1\~1440，即最短1分钟，最长1440分钟。 **默认取值**： 不涉及                                                                                                                                                                                                                                                      |
     
  
- 响应参数
  表3响应参数说明 
  | 参数      | 参数类型   | 描述                                                                                                                                                                                                                                                 |
  |:---|:---|:---|
  | resCode | String | **参数解释**： 返回码。 **取值范围**： 如果返回"0"代表请求成功，其他错误码说明请参考[错误码（数据面）](https://support.huaweicloud.com/api-astrozero/astrozero_api_0082.html)。 |
  | resMsg  | String | **参数解释**： 返回消息。 **取值范围**： 成功返回"成功"，其他情况会返回具体的错误信息。                                                                                    |
  | result  | Object | **参数解释**： 返回结果对象。对象中包含"shareToken"字段，表示临时Token。                                                                                                                                                                  |
     
  
- 请求示例 已创建好OBS类型连接器，连接器实例名称为"命名空间__TestOBS"。调用如下请求，获取某些文件的临时访问Token。
  ```
  POST https://华为云Astro轻应用域名/u-route/baas/sys/v1.1/connectors/obs/命名空间__TestOBS/sharetoken
  {
   "shareType": 0,
   "key": "a/b/c/1.txt",
   "keys": [
    "a/b/c/2.txt",
    "ROMAExchange.zip",
    "some/dir/c.jpg"
   ],
   "timeoutInMinutes": 60
  }
  ```
  **使用者拿到URL后即可访问，请注意避免分享敏感文件。**
  
- 响应示例
  ```
  {
   "resCode": "0",
   "resMsg": "成功",
   "result": {
    "shareToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJz***tOejj6NEo"
   }
  }
  ```
  请记录下"shareToken"的值，后续访问文件使用。
  
 
 #### 查看分享对象文件
- 功能介绍 使用[获取分享Token]，返回的临时Token查看文件。
  
- URI GET*华为云Astro轻应用域名* /u-route/baas/sys/v1.1/objectstorage/viewshareobject?*object=X\&shareToken=Y*
  表4路径参数 
  | 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                         |
  |:---|:---|:---|:---|
  | object     | 是    | String | **参数解释**： 文件所在桶的全路径，包含文件名。 **约束限制**： 不涉及。 **取值范围**： 不涉及。 **默认取值**： 不涉及。                                                         |
  | shareToken | 是    | String | **参数解释**： [获取分享Token]中，返回的临时Token。 **约束限制**： 不涉及。 **取值范围**： 不涉及。 **默认取值**： 不涉及。 |
     
  
- 请求参数 无
  
- 响应参数 只返回文件内容。
  
- 请求示例 已创建好OBS类型连接器，连接器实例名称为"命名空间__TestOBS"。调用如下请求，使用临时访问Token查看桶中的"a/b/c/1.txt"文件。
  ```
  GET https://华为云Astro轻应用域名/u-route/baas/sys/v1.1/objectstorage/viewshareobject?object=a/b/c/1.txt&shareToken=eyJhbGciOiJIUzI1NiIsInR******W8FYgXTGTAtOejj6NEo
  ```
  
- 响应示例
  ```
  test
  ```
  
 
