activestorage-aliyun icon indicating copy to clipboard operation
activestorage-aliyun copied to clipboard

是否可以增加一个上传的endpoint?

Open sanvibyfish opened this issue 4 years ago • 0 comments

背景是这样的,我在使用阿里云的OSS,机器的带宽有限,每次上传都是走公网的endpoint,如果上传大图就跪了。所以我希望上传的时候可以用内网的endpoint,然后获取service_url的时候是拿公网的host。

我目前使用的Rails版本是6.0

目前我的解决方案是这样的,个人感觉不是特别好。

# lib/active_storage_blob_extension.rb
module ActiveStorageBlobExtension
  extend ActiveSupport::Concern

  included do

    def cdn_service_url
      if ENV['CDN_HOST'].present?
        "#{ENV['CDN_HOST']}/#{self.key}"
      else
        self.service_url
      end 
    end

  end
end
# config/application.rb
...
    config.to_prepare do
      ActiveStorage::Blob.send :include, ::ActiveStorageBlobExtension
    end
...

sanvibyfish avatar May 26 '20 05:05 sanvibyfish