Rails 5.2.0 beta: Active Storage, Redis Cache Store, HTTP/2 Early Hints, CSP, Credentials
官网链接
5.2 增加了 Active Storage 框架,之前上传文件需要借助插件,现在直接集成在框架里了
ActiveEveryThing
简单看了下,以下是不完全总结。
Recyclable cache keys
redis key 由 views/projects/123-20120806214154/7a1156131a6928cb0026877f8b749ac9 变为 views/template/action.html.erb:7a1156131a6928cb0026877f8b749ac9/projects/123 方便回收。类似 ETAG
views/projects/123-20120806214154/7a1156131a6928cb0026877f8b749ac9
views/template/action.html.erb:7a1156131a6928cb0026877f8b749ac9/projects/123
cache 默认的压缩临界值 (threshold) 调整为 1 KB
encrypted secrets
简单来说,把原来用 config/secrets.yml 存明文,现在变为 config/secrets.yml.enc 存密文 + 一个环境变量 RAILS_MASTER_KEY 做解密。
config/secrets.yml
config/secrets.yml.enc
之后又把config/secrets.yml 变为 config/credentials.yml.enc ,主要是为了避免误解 (confusing) 。
config/credentials.yml.enc
环境变量是挺麻烦的东西,如果多机部署,每台机器都 source 下,挺蛋疼的。有了config/secrets.yml.enc ,就可以直接存密文,饭后 commit 到版本库里,服务器,只维护一个环境变量就可以了。减少了开发维护成本。
Active Storage
之前做个项目,用到的 gem,文件存储没用 carrierwave ,为了支持个七牛云,写的想死想死的(里面的代码太奇葩了),Active Storage 刚好解决这个问题。
carrierwave
为 Content Security Policy 提供了 DSL
mplement H2 Early Hints for Rails
bootsnap 变为默认引用。
这个特性貌似没什么鸟用。。。。。还得上 ENV
维护的少了呀。
感觉这两天 ruby-china 总是上不来啊。
不知道。。
ENV 大坑,修改或者设置 ENV 后必须重启 spring,要不然会怀疑人生的。