Rails 使用 qiniu 作为 carrierwave 的云存储,出现 401 unauthenticated

hw676018683 · 2014年10月24日 · 最后由 hw676018683 回复于 2014年11月05日 · 4518 次阅读

我把网站部署到 heroku,使用 qiniu 云存储,使用 qiniu,carrierwave-qiniu gem 来做的,但是时不时就会出现 401 unauthenticated 的错误,配置秘钥肯定是对的,求大神指导。

没有日志啥的么?

https://github.com/huobazi/carrierwave-qiniu/commit/98014cffa926aa430097a5b6d30052d5fbffdb66

七牛上传是得到的 policy 会过期,所以大文件是应该把 @qiniu_expires_in 设大些。

过期时间太长也有问题,当上传头像图片是出现上传后刷新不出来,呵呵~

#2 楼 @mimosa 这跟过期时间有什么关系呢,他是上传不上去,感觉像是随机的,有时可以上传,有时又会出现 401

401 出现在你的 response 里,还是 qiniu 的 response 里

#4 楼 @huobazi 我是在终端里看见的

#5 楼 @hw676018683 put policy 过期就会出现 unauthenticated 😪

#6 楼 @mimosa 我是同时上传了 10 多张图片,但是出现的情况是有几张成功了,有几张出现了 401

#7 楼 @hw676018683 这个 put policy 相当于一个时段内的上传 token,当它过期后,七牛就会报验证错误。

我在多文件上传时也遇到过!

#8 楼 @mimosa 我明天试一下,谢谢

#8 楼 @mimosa 我在 carrierwave.rb 配置 config.qiniu_expires_in = 3600 出现了 undefined method `qiniu_expires_in=' for CarrierWave::Uploader::Base:Class。。。难道不在这个文件中设置吗

11 楼 已删除

#10 楼 @hw676018683 config.expires_in = 3600 我不是很赞同使用 qiniu 作为前缀

#12 楼 @mimosa undefined method `expires_in=' for CarrierWave::Uploader::Base:Class。。还是不行

W, [2014-10-31T00:22:28.335196 #7939] WARN -- : 401 Unauthorized => Qiniu::HTTP.post('http://up.qiniu.com/')

还是一样,另外如果上传失败,应该抛出异常回滚吧,而不是打印一行警告

已经更新到 github: 'huobazi/carrierwave-qiniu', branch: :master

之前也遇到过,传多张,第一张成功,后面都是 401 bundle update carrierwave-qiniu 最新版本无此 bug

最后查到的原因是开发虚拟机日期没有更新,贴在这里供后来者参考

#18 楼 @lazing 感谢,有时候重新去试一下

需要 登录 后方可回复, 如果你还没有账号请 注册新账号