token生成代码如下
PutPolicy putPolicy = new PutPolicy("mymiyoustore:avatar.png");
putPolicy.expires = 60;
putPolicy.fsizeLimit=640000;
putPolicy.callbackBody="userId=" + userId + "&url=http://$(bucket).qiniudn.com/$(key)";
//putPolicy.saveKey=userId + "_avatar";
putPolicy.callbackUrl= ConfigInit.callBackRoot + "/upload/callback/avatar";
String upToken = null;
try
{
upToken = putPolicy.token(mac);
使用token上传代码如下
String key = null;
String localFString = "test1.jpg";
PutRet ret = IoApi.putFile(upToken, key, localFString, extra);
System.out.println(ret);
错误信息如下
{"error":"bad token"}
有没有兄弟遇到同样问题的,求指点!
问题在使用token上传这部分代码
String key = null;
String localFString = "test1.jpg";
PutRet ret = IoApi.putFile(upToken, key, localFString, extra);
System.out.println(ret);
把 key = null 改成实际的 key 值之后问题就解决了。
这个看来是七牛服务端规定了putPolicy中如果是scope:“bucket:key”样式的话,不允许IoApi.putFile函数的key参数为null。问题就到这里就算完了,那作为客户端如果要覆盖key上传的话,必须指明这个key了。
但是,本来在生成的token里面都已经说明了key是多少了,上传的时候再指明一次key值,是不是多余了?文档里也不说明,坑某人一下午,好辛苦!!