一、报错:{"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}
处理方法:
1、密钥(ak,sk复制黏贴有误)信息不正确、数字签名错误(签名方法是自己写的), 如果使用我们的sdk生成 的token出现的问题,把token给我们(七牛后台蓝色小框:提交工单), 如果是自己写的,请检查token生成的 相关代码
三、如果以上问题回答解决不了。只报了{"error":"bad token","reqid":"t1wAAHuwANZHl9YT","details":["UP:4/401"],"code":401}
处理方法:
提供下上传token,上传token由三部分组成(由冒号隔开),最后一段,用base64解码,可以看到你的上传策略中的参数,如果参数有问题也会报401
访问缩略图报 bad token 错误
访问缩略图报 bad token 错误
通过API获取缩略图,为何总是告诉我token错误?
七牛云存储的 bucket 分公开和私有两种。bucket 在创建时默认为私有,需要签发一个临时有效的下载 token 来访问其中的图片或图片的缩略图。私有缩略图访问方式如下:
baseUrl = MakeBaseUrl(domain, key) // 其中domain是该bucket任意关联的一个domain,key是访问图片(不是缩略图)的键 imgview = ImageView{...} // 缩略图类 thumbUrl = imgview.MakeRequest(baseUrl) // 得到缩略图url(对于公开的bucket,到此为止就可以了) policy = GetPolicy{...} // 下载策略类 url = policy.MakeRequest(thumbUrl) // 得到临时有效的缩略图url(对于私有的bucket,需要用这个url访问缩略图)
各个语言的 SDK 通常都已包含这些方法,只需要调用即可(不含 android/ios sdk,因为私有 url 应该由服务器签发并返回给客户端,而客户端无权生成)。有的 SDK 可能没有包装 ImageView 类,这没关系,因为它只是简单的字符串连接操作,只需仔细阅读 数据处理(图片篇) 文档,很容易自己现实。
另外,还可以在七牛开发者后台为图片缩略图规格定义一个友好别名。