我的使用场景是要上传指定文件名称的头像信息,因为头像可以重复修改上传,但文件名只固定一个,如果用bucket:key这种采用token的方式,那我每次上传前都要去取自己服务器上取Token,太影响性能。我想让token在2小时内有效,且这个Token能与其他上传共享。
我的使用场景是要上传指定文件名称的头像信息,因为头像可以重复修改上传,但文件名只固定一个,如果用bucket:key这种采用token的方式,那我每次上传前都要去取自己服务器上取Token,太影响性能。我想让token在2小时内有效,且这个Token能与其他上传共享。
我在文档中找到这个insertOnly说明:
insertOnly ● 限定为“新增”语意
如果设置为非0值,则无论scope设置为什么形式,仅能以新增模式上传文件。
意思是如果修改成非0值,只能是新增上传,无法覆盖原来的文件,你怎么说是是完成覆盖更新呢?
我用下面的nodejs代码来生成uploadtoken,无法完成更新,只能新增,错误信息如下:
2014-10-01 22:27:52.252 CYBIM[1187:70b] 上传进度,0.959756
2014-10-01 22:27:52.252 CYBIM[1187:70b] 上传进度,1.000000
2014-10-01 22:27:53.847 CYBIM[1187:70b] 上传失败,Request failed: server error (614)
nodejs代码:
var bucketname = 'imavatar';
var putPolicy = new qiniu.rs.PutPolicy(bucketname);
putPolicy.insertOnly=1;
var token= putPolicy.token();
res.send(token);
return next();
非常抱歉,之前的我之前对这个参数没有测试就回答了,覆盖操作还是只能通过设置
scope
来进行操作,我觉得你可以首次上传头像的时候一次性返回两个uptoken
,一个是带bucket:key
,另一个是只带bucket
,然后带bucket:key
只用作两小时内头像的更新,其他信息的上传则用另一个token。