Authored by mali

转码

package com.yohoufo.order.controller;
import com.yohoufo.common.annotation.IgnoreSession;
import com.yohoufo.common.annotation.IgnoreSignature;
import com.yohoufo.order.model.request.UfoLiveNotifyResp;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* Created by li.ma on 2018/12/11.
*/
@RestController
@RequestMapping(value = "/ufoLive")
public class UfoLiveAvthumbController {
private final Logger logger = LoggerFactory.getLogger(getClass());
/**
* 七牛转码完成状态通知
* https://developer.qiniu.com/dora/manual/1291/persistent-data-processing-pfop
* @param request
* @return
* @throws IOException
*/
@IgnoreSignature
@IgnoreSession
@RequestMapping(value = "/ufo_avthumb_notify", method = RequestMethod.POST)
public void notifyAvthumb(HttpServletRequest request, HttpServletResponse response, @RequestBody UfoLiveNotifyResp req) throws IOException {
logger.info("method notifyAvthumb Notify in req is {}", req);
logger.info("[{}] method notifyAvthumb Notify out");
response.getWriter().print("success");
}
}
... ...
package com.yohoufo.order.model.request;
import com.alibaba.fastjson.JSONObject;
/**
* Created by li.ma on 2018/12/11.
*/
public class UfoLiveNotifyItem {
private String cmd; // 所执行的云处理操作命令 fopN。
private Integer code;
private String desc;
private String error; // 如果处理失败,该字段会给出失败的详细原因。
private String hash; // 云处理结果保存在服务端的唯一 hash 标识。
private String key; // 云处理结果的外链资源名 Key。
private Integer returnOld; // 默认为 0。当用户执行 saveas 时,如果未加 force 且指定的 bucket:key 存在,则返回 1,告诉用户返回的是旧数据。
public String getCmd() {
return cmd;
}
public void setCmd(String cmd) {
this.cmd = cmd;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public String getError() {
return error;
}
public void setError(String error) {
this.error = error;
}
public String getHash() {
return hash;
}
public void setHash(String hash) {
this.hash = hash;
}
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public Integer getReturnOld() {
return returnOld;
}
public void setReturnOld(Integer returnOld) {
this.returnOld = returnOld;
}
@Override
public String toString() {
return JSONObject.toJSONString(this);
}
}
... ...
package com.yohoufo.order.model.request;
import com.alibaba.fastjson.JSONObject;
import java.util.List;
/**
* Created by li.ma on 2018/12/11.
*/
public class UfoLiveNotifyResp {
private String id; //持久化处理的进程 ID,即前文中的<persistentId>。
private Integer code; // 状态码 0:成功,1:等待处理,2:正在处理,3:处理失败,4:成功但通知失败。
private String desc; // 与状态码相对应的详细描述。
private String inputKey; // 处理源文件的文件名。
private String inputBucket; // 处理源文件所在的空间名。
private String pipeline; // 云处理操作的处理队列,默认使用队列为共享队列 0.default。
private String reqid; // 云处理请求的请求 id,主要用于七牛技术人员的问题排查。
private List<UfoLiveNotifyItem> items; // 云处理操作列表,包含每个云处理操作的状态信息。
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public String getInputKey() {
return inputKey;
}
public void setInputKey(String inputKey) {
this.inputKey = inputKey;
}
public String getInputBucket() {
return inputBucket;
}
public void setInputBucket(String inputBucket) {
this.inputBucket = inputBucket;
}
public String getReqid() {
return reqid;
}
public void setReqid(String reqid) {
this.reqid = reqid;
}
public String getPipeline() {
return pipeline;
}
public void setPipeline(String pipeline) {
this.pipeline = pipeline;
}
public List<UfoLiveNotifyItem> getItems() {
return items;
}
public void setItems(List<UfoLiveNotifyItem> items) {
this.items = items;
}
@Override
public String toString() {
return JSONObject.toJSONString(this);
}
}
... ...