技术文档
方法相同入参 AOP 使用说明
Shopee 刊登业务梳理文档
亚马逊刊登相关业务知识
刊登监控设计方案
亚马逊跟卖设计
Fanno 刊登业务梳理文档
日志收集 方案设计
PIB 刊登方案设计
Temu 刊登方案设计
ShopTokenInfo Aop集成MBC方案
香港定时卡刊登任务方案
push-message 、receive-message 省流方案
OZON 刊登方案设计
Lazada视频上传方案
广州同步店铺框架搭建
Shopify翻版
Amazon交接
TikTok 由global模式切换replicate模式调研
tiktok 折扣活动对接方案
Target 初期调研
本文档使用 MrDoc 发布
-
+
首页
Lazada视频上传方案
## 一. 业务背景    Lazada上传商品视频原先支持传视频url或使用媒体中心视频上传,近期传url会报错链接无效导致刊登失败。调研店小秘发现功能上他们支持YouTube url上传、视频id上传以及媒体中心视频上传,但使用YouTube视频链接时同样报错链接无效。因此开始调研Lazada视频上传接口 ## 二. 业务 ### 1. 接口详解 **InitCreateVideo(初始化创建视频接口)** ```java request.setApiName("/media/video/block/create"); request.addApiParameter("fileName", "show.mp4"); request.addApiParameter("fileBytes", "123456"); ``` ```json { "upload_id": "123456ABCD", "code": "0", "result_message": "file size is too big", "success": "true", "result_code": "ok", "request_id": "0ba2887315178178017221014" } ``` 通过视频名和视频字节数总大小来获取返回的**upload_id** **UploadVideoBlock(上传视频文件块接口)** ```java request.setApiName("/media/video/block/upload"); request.addApiParameter("uploadId", "123456ABCD"); request.addApiParameter("blockNo", "0"); request.addApiParameter("blockCount", "3"); request.addFileParameter("file",new FileItem("/Users/D ocuments/book.jpg")); ``` ```json { "code": "0", "result_message": "ok", "success": "true", "result_code": "ok", "e_tag": "FF123456FF", "request_id": "0ba2887315178178017221014" } ``` 通过上传视频的每个块和**upload_id**来获得对应的**e_tag** **CompleteCreateVideo(上传视频文件完毕接口)** ```java request.setApiName("/media/video/block/commit"); request.addApiParameter("uploadId", "123456ABCD"); request.addApiParameter("parts", "[{\"partNumber\":1,\"eTag\":\"AB693ADF0DF340F50637686D65CC062C\"},{\"partNumber\":2,\"eTag\":\"557C398778A948415C388B347509CE1C\"}]"); request.addApiParameter("title", "hello"); request.addApiParameter("coverUrl", "https://sg-live-02.slatic.net/p/ae0f37dbf1c0ef8c560a0f0cfbaac3b6.png"); request.addApiParameter("videoUsage", "pro_main_video"); ``` ```json { "code": "0", "result_message": "ok", "success": "true", "result_code": "ok", "request_id": "0ba2887315178178017221014", "video_id": "30023680909" } ``` 通过所有块视频**e_tag**与**upload_id**获得对应的**video_id** **GetVideo(获取视频处理状态)** ```java request.setApiName("/media/video/get"); request.setHttpMethod("GET"); request.addApiParameter("videoId", "123456"); ``` ```json { "cover_url": "https://sg-live-02.slatic.net/p/9e134745d2bd9b3eba1cf5d5b47d4b0b.jpg", "video_url": "http://lazvideo.alicdn.com/psp/20210725/49d480d9-9b15-40f2-8b9f-2a3905132e47@@ld.mp4?auth_key\u003d1627649365-0-0-b5e6a1e67df8bfbf0a6bcb071b92841d", "code": "0", "result_message": "ok", "success": "true", "result_code": "ok", "state": "AUDIT_SUCCESS", "title": "hello", "request_id": "0ba2887315178178017221014" } ``` 通过**video_id**获取状态 ### 2. 时序图  ### 3. 数据库模型  ### 4. UML类图 参考http://175.178.169.18:10086/project-4/doc-7/ 亚马逊刊登责任链设计的UML类图 ## 三. 流程 ### 1. 正常步骤 1. PHP调用JAVA接口时需要传递文件标题, 文件地址, 封面图等参数 2. JAVA接收到参数后初始化成lazada_video, lazada_video_block表模型对象存入DB 3. 开始调用视频初始化接口,并把返回的uploadId存入lazada_video表记录,并把step设置为2 4. 开始上传块记录。每上传一块就把返回e_tag记录到对应lazada_video_block表里。同时也要累加lazada_video表的current_block字段处理数 5. 当所有块都上传完毕就把step设置为3。并开始调用上传完毕接口拿到video_id写入lazada_video表 6. 通过video_id获取视频状态结果(定时轮询 + 延时消息)写入lazada_video表 ### 2. 重试步骤 1. 定时扫描所有状态不是最终状态的记录。 2. 然后根据每条记录自身的step,去发送消息直接定向到对应的节点重新走(类似亚马逊责任链) ### 3. 责任链节点流程 
thread
2023年7月21日 15:48
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码