Ruby:将图像下载到文件

时间:2017-10-07 12:01:00

标签: ruby-on-rails ruby image file png

在我的Rails应用程序的工作者中,我试图在目录中下载图像占位符的图像:

  • DIR
    • WWW
      • IMG
        • logo.svg的
      • RES
        • 图标
          • OS
            • version.png

以下是它的外观:

def perform platform_id
    object = ::App::Platform.find platform_id

    wrapper = File.dirname(Rails.root.join('tmp', 'wrappers', object.folder_name, object.platform, platform) # these are all local variables - don't care about them

    Dir.glob(wrapper + '/**/*') do |path|
        path = path.to_s # ?
        replace_image object, path
    end
end

def download_image path, url, image = true
    response = HTTParty.get url
    f = File.new path, 'w'
    f.binmode if image
    f.write response.body
    f.flush if image
    f.close
end

def replace_image object, path
    download_image(path, object.app.logo.url, false) if path.include?('www/img/logo.svg')
    if path.split('.').last == 'png' && path.include?('www/res/icon')
        name = path.split('.').first.split('/')
        os = name[name.length - 2]
        version = name.last
        FileUtils.rm path
        download_image path, object.app.icon_url(os, version).to_s
    end
end

现在,问题在于:

这样做......

$ response = HTTParty.get url
$ f = File.new Rails.root.join('test.png'), 'w'
$ f.binmode
$ f.write response.body
$ f.flush
$ f.close

...适用于rails控制台。

test.png文件包含从网址下载的图片。

工作程序中的代码只是将�PNG放入每个.png文件中。下载.svg文件效果很好。

修改

在生产中(在Heroku上)这很好用。这个问题只发生在开发中。

0 个答案:

没有答案