Gem 给 activestorage 顺手撸了个七牛的 service

mingyuan0715 · October 27, 2017 · Last by mingyuan0715 replied at August 20, 2018 · 3225 hits

本来 Refile 是我心目中最接近完美的 ruby 文件上传的工具了,不过还是有些细节让人比较不爽。 现在 ActiveStorage 取代了 refile 在我心目中的地位,试用下来,比较满意(除了不能设置默认图片这个不爽以外),顺手为其写了个 qiniu 的 service

https://github.com/qinmingyuan/activestorage_qiniu

欢迎取用。

shrine 这个文件上传怎么看?

Reply to awking

哈哈,我不是评测党啊。很早前关注过,不过没用过,我觉得也是受 refile 启发的作品,并且作者也是 refile 的主要 contributor。 期间一直用的七牛,写几个简单的 helper 方法,感觉用不上这种框架了。 如果不是 activestorage 出来,和 rails 紧密结合,我也不会用。

https://twin.github.io/better-file-uploads-with-shrine-motivation/

as 能直传吗?不经过 app server

Reply to pynix

可以呀,我还没研究七牛 service 的直传怎么实现。不过七牛的 js sdk 直传也很方便。

Reply to pynix

直传用 js sdk 吧

Reply to jun1st

需要服务端配合的吧

Reply to awking

shrine + tus + minio

Reply to pynix

应该可以通过表单 js sdk 直接用表单提交的

Reply to jun1st

好吧

这个 gem 相比 https://github.com/mycolorway/activestorage_qiniu/ 的优势是什么?

Reply to Rei
  1. bug 比它少,不过我写的可能也挺多 bug,毕竟测试代码几乎没有,但是确切的修复了几个彩程这个 gem 现存的 bug。
  2. 支持 QiniuHelper 独立的简单使用;
  3. 支持同步静态资源文件到七牛,扩展了Sprockets
  4. 支持 直传(direct_upload)到七牛服务器,彩程设计的 就不支持;

本来我是写这个 gem 比彩程早的,后来准备上传到 gems 服务器,发现彩程已经先我一步了就改名为 qiniu_rails 了。

彩程毕竟是个公司,可能让人觉得更可信赖一些。我写的这个也依然在公司生产环境使用稳定。

彩程那个之前大概半年没更新,也有一些 bug 直接用跑不通,后来提交 issue 之后就更新了。

代码上我觉得彩程那个功能更专一,assets 我是通过 CDN 回源处理的,不需要扩展 sprokets。

因为他们前端没用 activestorage.js 而是自己实现,所以 dicret_upload 不能直接用,我想仿照你的实现给他们提个 pr。

有个问题,你的实现是更改了原先的 xhr 还是另外发起一个,原先的 xhr 会重复发送吗?

Reply to Rei

我调试的时候明确看了请求是不会重复提交之前的 xhr 的。

14 Floor has deleted
You need to Sign in before reply, if you don't have an account, please Sign up first.