UploadFile getFile方法重名名似乎并未同步无法应付高并发

前段采用file.slice(pos, end);  切片后上传每个碎片默认的文件名都是blob。

后台获取时发现会有不同文件出现覆盖 QQ截图20170308202540.jpg

手动在外部同步以后正常

blob.png

\..\upload\20170308\tempblobs\5242880\3df4d3b5cadddc26adeb9f1246e6f646\blob

\..\upload\ 日期/切片/切片大小/未切片文件md5/碎片

顺便问一嘴 js中

   var blob=slice(file,startIdx, endIdx);

 formData.append("data", blob);

如何指定 blob 上传时的文件名 如果采用 blob_startIdx 或blob_切片序号 则可以有效避免重名问题

评论区

Dreamlu

2017-03-09 09:16

http://git.oschina.net/dreamlu/Easy4JFinal/tree/master/easy-core/src/main/java/com/oreilly/servlet 改动了部分cos的代码,你把这个打个包,就能解决你这个问题了!

Dreamlu

2017-03-09 09:25

这个不是jfinal的问题,是cos底层的问题,建议波总也自己封一个cos,或者精简cos入jfinal里面!

JFinal

2017-03-09 10:53

文件上传功能是利用了一个第三方的 cos 组件,重名问题也是 cos 解决的,cos 这个东东在碰到重名文件时会自动进行重命名,高并发场景下确实未对 cos 进行过测试,感谢你的反馈,已添加备忘,后续版本会改进

无涯

2017-03-09 13:46

我把路径改成了 upload/日期/大小/md5/序号/碎片 规避了重命名问题

JFinal

2017-03-09 14:43

@无涯 jfinal-club 这个项目,是用:精确到毫秒时间 + accountId 的方式来规划的文件名

热门反馈

扫码入社