• 应该算是一个小bug吧。 考虑到效率问题,换成vips还是划算的。

  • 因为要使用mongoid,所以不得不继续和carrierwave折腾。 我也想用active_storage啊。

  • 业余程序有能够对你有帮助,很欣慰。

  • 我没做这个测试,vips,通过write_to_file来保存文件,格式是跟着后缀变化的,具体格式方面,我也没有测试过。

    我看了一下代码: https://github.com/eltiare/carrierwave-vips/blob/master/lib/carrierwave/vips.rb

    def convert(extension)
      process :convert => extension
    end
    

    应该是实现了。

    我在我的代码中添加了

    process convert: 'png'
    

    执行了,没有问题。 但是,在version里面是错误的,程序在取image.avatar.url的时候会自动按照version相关的url去取png,但其实图片是存成jpg了(原图是jpg)。 然后改成了:

    version :thumb do
        process :scale => [150]
        process convert: 'png'
      end
    
      version :avatar do
        process :scale => [50]
        process convert: 'png'
      end
    

    就没有问题了。

  • 我已经搞明白了。 iterm是不认翻墙的。 需要单独设置,比如重新设置http_proxy 设置对了,就没有问题了。

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

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

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

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

  • 我在使用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的时候,没有问题。 七牛的全套设置,是在其他项目里面一直在用的,肯定没有问题。

    请问我少设置了什么吗?

  • 做注释的时候,还没有找到正确的方法。在找到正确方法之后,就把注释取消了。