Rails 使用 Active Storage 往七牛上存东西,发生问题,求解

lukefan · June 24, 2018 · Last by lukefan replied at June 26, 2018 · 2378 hits

我在使用 Active_Storage 的时候,遇到了一个奇怪问题。 这么多年来,一直都在使用七牛云,做了设置: storage.yml 里面

qiniu:
    service: Qiniu
    access_key: <%= Rails.application.credentials.dig(:qiniu, :access_key) %>
    secret_key: <%= Rails.application.credentials.dig(:qiniu, :secret_key) %>
    bucket: <%= Rails.application.credentials.dig(:qiniu, :bucket) %>
    domain: <%= Rails.application.credentials.dig(:qiniu, :domain) %>

development.rb 里面

config.active_storage.service = :qiniu

_form.html.erb 里面

<%= form.file_field :image, direct_upload: true%>

在上传文件的时候,却得到了这样的提示:

NameError (Cannot load `Rails.config.active_storage.service`:
uninitialized constant ActiveStorage::Service::QiniuService::Qiniu):

使用 local 的时候,没有问题。 七牛的全套设置,是在其他项目里面一直在用的,肯定没有问题。

请问我少设置了什么吗?

当我添加了: rb config.active_storage.analyzers = [ ActiveStorage::Analyzer::QiniuImageAnalyzer, ActiveStorage::Analyzer::QiniuVideoAnalyzer ] 之后,显示 analyzers 失败。

我很喜欢用 CarrierWave 里面的 remote_url,直接抓取外面的资源,现在怎么搞? 另外,原来 carrierwave 里面,是在上传的时候,做图像处理的,还可以添加水印、圆角什么的,现在怎么搞?是不是都要到显示的时候来处理?这样的话,是不是每次显示的时候都要运算,原来是分成不同的版本存下来的,显示的时候直接调用就好了。

另外,询问一下,mongoid 上怎么用这个东西?CarrierWave 是有 mongoid 的整合 gem 的。

没看到 qiniu 的适配器描述,activestorage 原生不支持 qiniu 的。

升级了最新的版本,问题解决了。 现在的问题是版本问题,如何将图片按分辨率,分版本上传上去,然后直接下载。 我上传了一张 20M 的照片,然后就悲剧了。

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