
# 创建场景文件-CreateSceneFile
创建场景文件
#### 功能介绍
本接口用于创建仿真场景文件。平台会根据文件sha256值判断场景文件是否已存在，如果场景文件不存在，则返回预签链接用于上传场景文件。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-octopus/Permission.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                        | 访问级别  | 资源类型（\*为必须） | 条件键 | 别名 | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | octopus:simScenario:create | Write | -           | -   | -  | -      |
     
  
 
#### URI
POST https://{hostURL}/v2/{project_id}/sim/sm/scenarios/{parent_lookup_id}/files
表1路径参数 
| 参数               | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|:---|
| parent_lookup_id | 是    | String | **参数解释**： 场景ID。 **约束限制**： 场景需已创建，如未创建则可以通过场景创建接口进行创建。 **取值范围**： 不涉及 **默认取值**： 不涉及                                                           |
| project_id       | 是    | String | **参数解释**： 项目ID，获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-octopus/octopus-10-0020.html)。 **约束限制**： 不涉及 **取值范围**： 不涉及 **默认取值**： 不涉及 |
   
#### 请求参数
表2请求Body参数 
| 参数       | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| sha256   | 是    | String | **参数解释**： 文件SHA256值。 **约束限制**： 必须是有效的SHA256字符串，可以使用本地哈希工具计算文件的SHA256值。 **取值范围**： 不涉及。 **默认取值**： 不涉及 |
| filename | 是    | String | **参数解释**： 场景文件名。 **约束限制**： 场景文件为OpenSCENARIO格式。 **取值范围**： 长度范围\[0-255\]。 **默认取值**： 不涉及              |
   
#### 响应参数
**状态码：201**
表3响应Body参数 
| 参数         | 参数类型                                                        | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|
| url        | String                                                      | **参数解释**： 文件资源地址。 **约束限制**： 不涉及。 **取值范围**： 不涉及。 **默认取值**： 不涉及                                                                           |
| sha256     | String                                                      | **参数解释**： 文件SHA256值。 **约束限制**： 必须是有效的SHA256字符串，可以使用本地哈希工具计算文件的SHA256值。 **取值范围**： 不涉及。 **默认取值**： 不涉及                                     |
| created_at | Double                                                      | **参数解释**： 创建时间。 **约束限制**： 不涉及。 **取值范围**： 不涉及。 **默认取值**： 不涉及。                                                                            |
| updated_at | Double                                                      | **参数解释**： 更新时间。 **约束限制**： 不涉及。 **取值范围**： 不涉及。 **默认取值**： 不涉及。                                                                            |
| post       | [post] object | **参数解释**： POST预签链接信息，用于上传文件。 **约束限制**： 不涉及                                                                                                                                                                                                                                                                                              |
| put_url    | String                                                      | **参数解释**： PUT预签链接地址，用于上传文件。优先使用POST方法上传。 **约束限制**： 不涉及 **取值范围**： 不涉及。 **默认取值**： 不涉及                                                     |
| get_url    | String                                                      | **参数解释**： GET地址，用于下载文件。 **约束限制**： 不涉及 **取值范围**： 不涉及。 **默认取值**： 不涉及                                                                      |
| expire     | Integer                                                     | **参数解释**： 预签链接失效时长。 **约束限制**： 不涉及。 **取值范围**： 大于0 **默认取值**： 600                                                                          |
| ready      | Boolean                                                     | **参数解释**： 文件上传状态。 **约束限制**： 当前未使用该参数。 **取值范围**： · true：上传完成 · false：上传未完成 **默认取值**： 不涉及 |
| filename   | String                                                      | **参数解释**： 场景文件名。 **约束限制**： 场景文件为OpenSCENARIO格式。 **取值范围**： 长度范围\[0-255\]。 **默认取值**： 不涉及                                                  |
   
 表4post 
| 参数     | 参数类型                                                                                  | 描述                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|
| url    | String                                                                                | **参数解释**： 下一页结果集资源地址。 **约束限制**： 不涉及。 **取值范围**： 不涉及。 **默认取值**： 不涉及 |
| fields | [PostResponseField] object | **参数解释**： POST上传签名信息，需要在请求时携带。 **约束限制**： 不涉及                                                                                                                                                                                                                      |
   
 表5PostResponseField 
| 参数               | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|
| key              | String | **参数解释**： Post预签链接Key字段，在创建请求时需要添加到请求头。 **约束限制**： 不涉及 **取值范围**： 不涉及 **默认取值**： 不涉及              |
| x-amz-algorithm  | String | **参数解释**： Post预签链接x-amz-algorithm字段，在创建请求时需要添加到请求头。 **约束限制**： 不涉及 **取值范围**： 不涉及 **默认取值**： 不涉及  |
| x-amz-credential | String | **参数解释**： Post预签链接x-amz-credential字段，在创建请求时需要添加到请求头。 **约束限制**： 不涉及 **取值范围**： 不涉及 **默认取值**： 不涉及 |
| x-amz-date       | String | **参数解释**： Post预签链接x-amz-date字段，在创建请求时需要添加到请求头。 **约束限制**： 不涉及 **取值范围**： 不涉及 **默认取值**： 不涉及       |
| policy           | String | **参数解释**： Post预签链接policy字段，在创建请求时需要添加到请求头。 **约束限制**： 不涉及 **取值范围**： 不涉及 **默认取值**： 不涉及           |
| x-amz-signature  | String | **参数解释**： Post预签链接x-amz-signature字段，在创建请求时需要添加到请求头。 **约束限制**： 不涉及 **取值范围**： 不涉及 **默认取值**： 不涉及  |
   
#### 请求示例
创建场景文件
```
POST https://{endpoint}/v2/{project_id}/sim/sm/scenarios/{id}/files/
{
  "sha256" : "0fb50a138fb132be3c794eb423375cca3263fe35a33063c06a4821819ab7fc85",
  "filename" : "ALKS_Scenario_4.1_1_FreeDriving_TEMPLATE.xosc"
}
```
#### 响应示例
**状态码：201**
请求成功
```
{
  "url" : "/v2/my_project_id/sim/sm/scenarios/361/files/0fb50a138fb132be3c794eb423375cca3263fe35a33063c06a4821819ab7fc85/",
  "sha256" : "0fb50a138fb132be3c794eb423375cca3263fe35a33063c06a4821819ab7fc85",
  "created_at" : 1.699954029767271E9,
  "updated_at" : 1.699954029767295E9,
  "post" : {
    "url" : "my-post-url",
    "fields" : {
      "key" : "sim/ifiles/file/0fb50a138fb132be3c794eb423375cca3263fe35a33063c06a4821819ab7fc85.xosc",
      "x-amz-algorithm" : "AWS4-HMAC-SHA256",
      "x-amz-credential" : "my-amz-credential",
      "x-amz-date" : "20231114T092710Z",
      "policy" : "my-policy",
      "x-amz-signature" : "my-x-amz-signature"
    }
  },
  "put_url" : "my-put-url",
  "get_url" : null,
  "expire" : 600,
  "ready" : false,
  "filename" : "ALKS_Scenario_4.1_1_FreeDriving_TEMPLATE.xosc"
}
```
#### 状态码
| 状态码 | 描述   |
|:---|:---|
| 201 | 请求成功 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-octopus/ErrorCode.html)。
