上传资产
本节演示如何通过API Explorer和Postman工具,将资产上传至OBS桶。
总体流程
- 调用创建资产接口创建资产ID。
- 调用创建文件并获取上传URL接口创建文件ID,并生成文件ID和文件上传的URL地址。
- 使用Postman工具,将资产文件上传至URL地址中。
- 调用确认文件已上传接口,确认文件已上传成功。
操作步骤
- 单击创建资产,进入MetaStudio服务的API Explorer页面。
asset_name为资产名称,可自定义。asset_type为资产类型,本次示例选择“IMAGE”。其他参数配置,请参见创建资产参数说明。
如果状态码返回200,说明创建资产接口调用成功,需要记录下返回字段asset_id(资产ID)的值。图1 接口页面 - 在左侧导航栏中选择“文件管理 > 创建文件并获取上传URL”。
须知:如果上传的资产文件大小超过5GB,需要使用创建大文件接口,操作方法相同。
参数配置说明,如下所示,其余参数配置详见创建文件并获取上传URL参数说明。- file_name:文件全称,示例test.png。
- file_md5:文件必须经过MD5计算,并进行Base64编码,用于服务端校验已上传文件的完整性,且不同文件的计算结果不同。
- file_size:文件实际占用大小,单位为字节。
- file_type:文件格式后缀。
- asset_id:创建资产接口返回值,如1所示。
- asset_file_category:输入MAIN。
如果状态码返回200,说明创建文件并获取上传URL接口调用成功,需要记录下返回的file_id(文件ID)和upload_url(文件上传地址,有效期为24小时)的值,待后续步骤使用。
图2 接口页面 - 上传资产文件至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,说明文件上传成功。
- 在左侧导航栏中选择“文件管理 > 确认文件已上传”。
file_id为2中返回的file_id的值;Body中的state取值为“CREATED”,其余参数配置请参考确认文件已上传参数说明。
如果状态码返回200,说明确认文件已上传接口调用成功,至此上传动作完成。
图4 接口页面 - 前面的4个操作步骤执行完成后,可以通过查询资产详情接口查看上传结果。也可以在MetaStudio控制台的“资产管理 > 素材管理”页面,选择对应资产类型的页签,单击“已激活”页签,查看上传的资产文件。
常见错误
上传资产失败的常见错误,如下所示:
- 2中file_md5输入错误,因为文件的MD5计算错误,且没有进行Base64编码。
- 3中可能错误,如下所示:
- Content-MD5设置错误,因为文件的MD5计算错误,且没有进行Base64编码。
- Content-Type设置错误,格式设置的不对。
- 使用OBS的PUT上传接口上传资产文件时,没有以二进制流binary方式上传。
- 接口返回状态码400,是接口传参有问题,需要检查参数配置。
- 权限错误,需排查MetaStudio服务所在Region是否正确。
- 代码报错问题,请先通过API Explorer和Postman工具将流程跑通,再排查自己的代码问题。
其他问题
- 文件一直处于“创建中”状态(CREATING),说明未完成操作步骤中的前4个操作步骤,请检查上传流程。
- PPT自动解析,需要完成操作步骤中的所有操作后,再调用更新资产接口,Body传入下述内容:
{"asset_extra_meta":{"ppt_meta":{"auto_analysis":true}}}
PPT解析仅在第一次调用更新资产接口修改时有效,解析完成后再调用,不会重复解析。
确认资产文件上传完成后,才能再调用更新资产接口修改PPT元数据。
- 上传视频素材时,如需在视频制作中使用,需要确保该视频资产被标记为“素材视频”,如下所示:
"system_properties": [{"key": "MATERIAL_VIDEO", "value": "Yes"}]
界面展示效果,如图5所示。
- 形象制作、声音制作、视频制作的音频驱动,不属于资产库管理范畴(详见资产范围说明),不适用于当前上传资产示例章节。