!!!诡异情况突然消失了,看来应该是七牛后台的bug,现在怎么上传都能成功了,但还是很奇怪很奇怪啊,感觉不像是随机触发什么的呢,是刚更新了后台吗?还有就是刚本来还提示文件已存在,之后再上传又没这个提示了,上传的文件应该是自动覆盖已有文件吧?为什么有时候报文件已存在有时候又不报呢?还有之前白色的图片能上传,黑色的不能上传我们是测试过很多次的,文件名称什么的完全都一样,每次白色的都行,黑色的就不行,实在不清楚是为什么,求解释,求安慰啊!以后不会再出现这样的情况吧?
有以下几种诡异的情况:
- 项目下的jpg文件可以上传,但是测试的其他的gif或dump.rdb文件都报io错误
- 保存在应用缓存内的文件有的可以上传有的无法上传,比如程序绘制的空白图片就可以上传,但是绘制的带有图像的图片就无法上传,比如黑色的图片就无法上传
- 直接加载可以上传的jpg再保存到应用缓存内也无法再上传了,包括存到应用程序文件夹下也不行
可行的情况:
1. 文件夹在应用程序根目录下,且是.jpg文件,目前就测试了这个
2. 程序绘制的空白文件
以上多种手段生成的文件均可在本地服务器上传成功,但七牛却不行,实在是不解。特别是能上传到七牛的文件换个地方就不行了,文件大小都完全一样,很奇怪,望答复,我可以提供demo源码,多谢!
附上不能上传的黑图片
是IO_Error #2038么?
这个错误在swfupload上,或者说在使用as的上传组件上,非常常见且原因五花八门,比较有趣的可以参考:
http://stackoverflow.com/questions/14826905/flash-and-swfupload-i-o-error-2038-only-on-chrome-flash-bug-or
参考更多:
https://www.google.com.hk/search?newwindow=1&safe=strict&espv=210&es_sm=93&biw=1241&bih=544&q=flash+io+error+2038&oq=flash+io+error+2038&gs_l=serp.3..0i7i30j0i30l2j0i8i30l2j0i5i30.34226.39663.0.39960.7.7.0.0.0.0.281.767.3j2j1.6.0....0...1c.1j4.32.serp..4.3.501.9Bx1ymBJX2I
我感觉比较靠谱的是:
http://forums.adobe.com/thread/796003
建议做横向对比测试,同一个内容如果用swfupload报IOError,再用基本的HTML表单上传试一试。如果是服务端的问题,那么应该都报错,这样话用HTML表单至少还能拿到请求的一些信息,如response header、response body,这些对排查问题是很有帮助的。
针对你提出的问题,如文件换位置等等,都可以用这样的办法来验证。
关于文件覆盖,在客户端指定了key的情况下,只有上传策略的scope设置为':'的形式才会进行覆盖上传,否则都会报文件已存在。不指定key,则采用默认的命名,这时候相同内容的文件上传不会冲突,可以参考:
http://developer.qiniu.com/docs/v6/api/reference/security/put-policy.html
再就是黑色图片,我把图片下载到本地,用sdk、命令行工具以及我们的管理平台都进行了上传测试,期间改了名,移动了位置,复制了123456份,还是没能重现你所说的不能上传,能用表单试一次,把上传不了的请求信息提供给我么~不胜感激