복붙노트

[RUBY-ON-RAILS] 어떻게 레일의 URL에서 파일과 저장을 다운로드 할 수 있습니까?

RUBY-ON-RAILS

어떻게 레일의 URL에서 파일과 저장을 다운로드 할 수 있습니까?

난 내 응용 프로그램에 대한 미리보기를 생산하는 종이 클립을 사용할 수 있도록하는 것이, 내가 로컬로 저장하려는 이미지에 대한 URL이 있습니다. 이미지를 다운로드하고 저장하는 가장 좋은 방법은 무엇입니까? (나는 루비 파일 처리로 보았지만 아무것도 건너하지 않았다.)

해결법

  1. ==============================

    1.이 시도:

    이 시도:

    require 'open-uri'
    open('image.png', 'wb') do |file|
      file << open('http://example.com/image.png').read
    end
    
  2. ==============================

    2.더 짧은 버전 :

    더 짧은 버전 :

    require 'open-uri'
    download = open('http://example.com/image.png')
    IO.copy_stream(download, '~/image.png')
    

    같은 파일 이름을 유지하려면 :

    IO.copy_stream(download, "~/#{download.base_uri.to_s.split('/')[-1]}")
    
  3. ==============================

    3.당신이 클립을 사용하는 경우, URL에서 다운로드하면 자동으로 처리됩니다.

    당신이 클립을 사용하는 경우, URL에서 다운로드하면 자동으로 처리됩니다.

    당신이 좋아하는 무언가를 가지고 가정 :

    class MyModel < ActiveRecord::Base
      has_attached_file :image, ...
    end
    

    모델에서 단지 URL이 같은 (고의적 긴 형식으로 작성)와 같은 이미지를 지정합니다 :

    @my_model = MyModel.new
    image_url = params[:image_url]
    @my_model.image = URI.parse(image_url)
    

    당신은 아마 모델의 방법에 넣고 싶을 것이다. 이것은 또한 Heroku가의 임시 파일 시스템에서 잘 작동합니다.

    종이 클립은 거기에서 그것을 취할 것입니다.

    출처 : 클립 문서

  4. ==============================

    4.나는 이것이 가장 분명한 방법이라고 생각 :

    나는 이것이 가장 분명한 방법이라고 생각 :

    require 'open-uri'
    
    File.write 'image.png', open('http://example.com/image.png').read
    
  5. ==============================

    5.인터넷을 확인하십시오 : HTTP를 표준 라이브러리에. 문서는 HTTP를 사용하여 문서를 다운로드하는 방법에 대한 몇 가지 예제를 제공합니다.

    인터넷을 확인하십시오 : HTTP를 표준 라이브러리에. 문서는 HTTP를 사용하여 문서를 다운로드하는 방법에 대한 몇 가지 예제를 제공합니다.

  6. from https://stackoverflow.com/questions/2515931/how-can-i-download-a-file-from-a-url-and-save-it-in-rails by cc-by-sa and MIT license