beng 大佬有话说 : 2020-3-23 16:24:47
[不懂就问系列]go语言 阿里云OSS服务器回调处理
RT
用户直传OSS,OSS返回上传信息到回调服务器使用POST请求。
我用GO接受请求,获取上传的文件信息(文件名,文件大小等)
r.Header没有相关字段
r.body返回的信息请问如何获取callback_body?
func handlerRequest(w http.ResponseWriter, r *http.Request) {
if r.Method == "POST" {
fmt.Println("nHandle Post Request…")
// Get PublicKey bytes
bytePublicKey, err := getPublicKey(r)
if err != nil {
responseFailed(w)
return
}
// Get Authorization bytes : decode from Base64String
byteAuthorization, err := getAuthorization(r)
if err != nil {
responseFailed(w)
return
}
// Get MD5 bytes from Newly Constructed Authrization String.
byteMD5, err := getMD5FromNewAuthString(r)
if err != nil {
responseFailed(w)
return
}
// VerifySignature and response to client
if verifySignature(bytePublicKey, byteMD5, byteAuthorization) {
// Do something you want accoding to callback_body …
// response OK : 200
responseSuccess(w)
} else {
// response FAILED : 400
responseFailed(w)
}
}
}