
# 上传资产
本节演示如何通过[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/MetaStudio/sdk?api=CreateDigitalAsset)和Postman工具，将资产上传至OBS桶。
#### 总体流程
1. 调用[创建资产](https://console.huaweicloud.com/apiexplorer/#/openapi/MetaStudio/sdk?api=CreateDigitalAsset)接口创建资产ID。
2. 调用[创建文件并获取上传URL](https://console.huaweicloud.com/apiexplorer/#/openapi/MetaStudio/sdk?api=CreateFile)接口创建文件ID，并生成文件ID和文件上传的URL地址。
3. 使用Postman工具，将资产文件上传至URL地址中。
4. 调用[确认文件已上传](https://console.huaweicloud.com/apiexplorer/#/openapi/MetaStudio/sdk?api=ConfirmFileUpload)接口，确认文件已上传成功。
 
 #### 操作步骤
1. 单击[创建资产](https://console.huaweicloud.com/apiexplorer/#/openapi/MetaStudio/sdk?api=CreateDigitalAsset)，进入MetaStudio服务的API Explorer页面。
   
   asset_name为资产名称，可自定义。asset_type为资产类型，本次示例选择"IMAGE"。其他参数配置，请参见[创建资产参数说明](https://support.huaweicloud.com/api-metastudio/CreateDigitalAsset.html)。
   如果状态码返回200，说明创建资产接口调用成功，需要记录下返回字段asset_id（资产ID）的值。
   图1接口页面   
   ![](https://support.huaweicloud.com/api-metastudio/zh-cn_image_0000002140631584.png)
   
   
2. 在左侧导航栏中选择"文件管理 \> [创建文件并获取上传URL](https://console.huaweicloud.com/apiexplorer/#/openapi/MetaStudio/sdk?api=CreateFile)"。
   
   须知：如果上传的资产文件大小超过5GB，需要使用[创建大文件](https://console.huaweicloud.com/apiexplorer/#/openapi/MetaStudio/doc?api=CreateLargeFile)接口，操作方法相同。
   参数配置说明，如下所示，其余参数配置详见[创建文件并获取上传URL参数说明](https://support.huaweicloud.com/api-metastudio/CreateFile.html)。
   - file_name：文件全称，示例test.png。
   
   - file_md5：文件必须经过MD5计算，并进行Base64编码，用于服务端校验已上传文件的完整性，且不同文件的计算结果不同。
   
   - file_size：文件实际占用大小，单位为字节。
   
   - file_type：文件格式后缀。
   
   - asset_id：创建资产接口返回值，如[1]所示。
   
   - asset_file_category：输入MAIN。
    
   如果状态码返回200，说明[创建文件并获取上传URL](https://console.huaweicloud.com/apiexplorer/#/openapi/MetaStudio/sdk?api=CreateFile)接口调用成功，需要记录下返回的file_id（文件ID）和upload_url（文件上传地址，有效期为24小时）的值，待后续步骤使用。
   图2接口页面   
   ![](https://support.huaweicloud.com/api-metastudio/zh-cn_image_0000002140821146.png)
   
   
3. 上传资产文件至[2]中返回的upload_url（文件上传地址，有效期为24小时）中，如[图3]所示。
   
   详细操作说明，如下所示：
   在Postman工具中，将upload_url地址作为请求地址，使用PUT方式上传。
   - Params：已包含在upload_url地址中，已携带鉴权信息，无需更改。
   
   - Headers：添加Content-Type，本案例取值为image/png；添加Content-MD5，取值与[2]中file_md5的值一致。
     Content-Type常见取值，如下所示：
     - image/gif：gif图片格式
     
     - image/jpeg：jpg或jpeg图片格式
     
     - image/png：png图片格式
     
     - audio/mp3：mp3音频格式
     
     - audio/wav：wav音频格式
     
     - video/mp4：mp4视频格式
     
     - application/octet-stream：二进制流数据，如ppt、pdf或其它格式视频。
      
   
   - Body：待上传文件，选择binary形式。
   
   
   如果状态码返回200，说明文件上传成功。
   图3上传文件   
   ![](https://support.huaweicloud.com/api-metastudio/zh-cn_image_0000002140674542.png)
   
   
4. 在左侧导航栏中选择"文件管理 \> [确认文件已上传](https://console.huaweicloud.com/apiexplorer/#/openapi/MetaStudio/sdk?api=ConfirmFileUpload)"。
   
   file_id为[2]中返回的file_id的值；Body中的state取值为"CREATED"，其余参数配置请参考[确认文件已上传参数说明](https://support.huaweicloud.com/api-metastudio/ConfirmFileUpload.html)。
   如果状态码返回200，说明[确认文件已上传](https://console.huaweicloud.com/apiexplorer/#/openapi/MetaStudio/sdk?api=ConfirmFileUpload)接口调用成功，至此上传动作完成。
   图4接口页面   
   ![](https://support.huaweicloud.com/api-metastudio/zh-cn_image_0000002140933712.png)
   
   
5. 前面的4个操作步骤执行完成后，可以通过[查询资产详情](https://console.huaweicloud.com/apiexplorer/#/openapi/MetaStudio/debug?api=ShowAsset)接口查看上传结果。也可以在MetaStudio控制台的"资产管理 \> 素材管理"页面，选择对应资产类型的页签，单击"已激活"页签，查看上传的资产文件。
 
#### 常见错误
上传资产失败的常见错误，如下所示：
- [2]中file_md5输入错误，因为文件的MD5计算错误，且没有进行Base64编码。
- [3]中可能错误，如下所示：
  - Content-MD5设置错误，因为文件的MD5计算错误，且没有进行Base64编码。
  
  - Content-Type设置错误，格式设置的不对。
  
  - 使用OBS的[PUT上传](https://support.huaweicloud.com/api-obs/obs_04_0080.html)接口上传资产文件时，没有以二进制流binary方式上传。
   
- 接口返回状态码400，是接口传参有问题，需要检查参数配置。
- 权限错误，需排查MetaStudio服务所在Region是否正确。
- 代码报错问题，请先通过[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/MetaStudio/debug?api=CreateDigitalAsset)和Postman工具将流程跑通，再排查自己的代码问题。
 
#### 其他问题
- 文件一直处于"创建中"状态（CREATING），说明未完成[操作步骤]中的前4个操作步骤，请检查上传流程。
- PPT自动解析，需要完成[操作步骤]中的所有操作后，再调用[更新资产](https://console.huaweicloud.com/apiexplorer/#/openapi/MetaStudio/debug?api=BatchExecuteAssetAction)接口，Body传入下述内容：
  ```
  {"asset_extra_meta":{"ppt_meta":{"auto_analysis":true}}}
  ```
  PPT解析仅在第一次调用[更新资产](https://console.huaweicloud.com/apiexplorer/#/openapi/MetaStudio/debug?api=BatchExecuteAssetAction)接口修改时有效，解析完成后再调用，不会重复解析。
  确认资产文件上传完成后，才能再调用[更新资产](https://console.huaweicloud.com/apiexplorer/#/openapi/MetaStudio/debug?api=BatchExecuteAssetAction)接口修改PPT元数据。
  
- 上传视频素材时，如需在视频制作中使用，需要确保该视频资产被标记为"素材视频"，如下所示：
  ```
  "system_properties": [{"key": "MATERIAL_VIDEO", "value": "Yes"}]
  ```
  界面展示效果，如[图5]所示。
  图5素材视频   
  ![](https://support.huaweicloud.com/api-metastudio/zh-cn_image_0000002176663657.png) 
- 形象制作、声音制作、视频制作的音频驱动，不属于资产库管理范畴（详见[资产范围说明](https://support.huaweicloud.com/usermanual-metastudio/metastudio_05_0128.html)），不适用于当前上传资产示例章节。
 
