Skip to content

V7 func collectData(req *http.Request) (data []byte, err error) { 和文档上不符合啊 #37

@mojocn

Description

@mojocn

https://github.com/qiniu/go-sdk/blob/master/auth/credentials.go

https://developer.qiniu.com/kodo/1201/access-token#1

signingStr=req.Method(HTTP协议的Method是大小写敏感的) + " "(空格) +req.Path 如果query为非空字符串(query不包含问号(?)字符) signingStr=req.Method + " "(空格) +req.Path+?(英文问号)+req.query 接下来增加Host信息 signingStr=signingStr+\n(换行符)Host:(英文符号冒号) (空格)+req.Host 如果您设置了Content-Type的 Header,也需要添加 signingStr=signingStr+\n(换行符)Content-Type:(英文符号冒号) (空格)+req.Content-Type 对于七牛特殊的X-Qiniu-<key>头信息,如果有也需要添加, ”X-Qiniu-<key>“header是指在请求Header中以“X-Qiniu-”字符串开头的头部信息对,为七牛服务端理解。其中key不可为空字符。在生成签名算法中对key有一定的格式转换要求,第一个字母和连字符(-)后面的字母大写,其余字母都是小写。满足以上条件的键值对,根据<key>字符串 ASCII大小排序后,由小到大,依次加入待签名字符串 signingStr=signingStr+\n(换行符)+<key1>:(英文符号冒号) (空格)+<value1>+\n(换行符)+<key2>:(英文符号冒号) (空格)+<value2>+... 完成以上信息之后加入2个连续对换行符 signingStr=signingStr+\n(换行符)+\n(换行符) 如果您设置了请求Body,并且设置Content-Type不为"application/octet-stream"类型,Body也需要加入待签名字符串 signingStr=signingStr+<body> 

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions