利用golang语言,调用七牛官方的上传文件接口,一直返回 tocken 错误 401 的错误

新手上路,请多包涵

我已经初始化过了,函数最开始的时候 初始化的

conf.ACCESS_KEY = AccessKey   //配置中读取的
conf.SECRET_KEY = SecretKey   //配置中读取的

调用的是 七牛官网提供的 上传文件的接口,调用方式如下 :

addr, er := UploadFile(imgPath, imgPath)

func UploadFile(localFile string, destName string) (addr string, err error) {

policy := new(rs.PutPolicy)
policy.Scope = QiniuScope
uptoken := policy.Token(nil)

var ret io.PutRet
var extra = new(io.PutExtra)
fmt.Println(uptoken, destName, localFile, extra)

err = io.PutFile(nil, &ret, uptoken, destName, localFile, extra)
if err != nil {
    return
}
addr = "http://" + QiniuScope + ".qiniudn.com/" + destName
return

}

帮忙看一下,哪里调用错误了。

阅读 6.3k
1 个回答

401 错误码常见问题,如果没有出现下述报错情况,请提供token,以及报错信息过来
上传凭证

报错:{"error":"expired token"},{“error”:”token out of date”}
处理方法:1,将 token 的有效期设置的长一些。对于比较大的文件,可以适当加长有效期(默认是 3600 秒),2,看下自己的服务器时间是否是联网时间。如果时间不准,导致签名后的结果可能已经是过期的了。3,建议客户每次上传都重新请求一次上传 token。或者设置的时间长些。

报错:{"error":"bad token","reqid":"t1wAAHuwANZHl9YT","details":["UP:4/401"],"code":401}
处理方法:密钥(ak,sk 复制黏贴有误)信息不正确、数字签名错误(签名方法是自己写的), 如果使用我们的 sdk 生成的 token 出现的问题,把 token 给我们(七牛后台蓝色小框:提交工单), 如果是自己写的,请检查 token 生成的相关代码。

如果以上问题回答解决不了。只报了 {"error":"bad token","reqid":"t1wAAHuwANZHl9YT","details":["UP:4/401"],"code":401}
解决方法:提供下上传 token,上传 token 由三部分组成(由冒号隔开),最后一段,用 base64 解码,可以看到你的上传策略中的参数。如果参数有问题也会报 401

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
七牛云问答
子站问答
访问
宣传栏