2016-03-22 3 views
0

私は1つのAPI(XMLのURLを使用)から画像を取得し、レールはREST APIを構築しました。open-uriまたはpaperclipを使用して画像をデータベースにダウンロードし、残りのAPIにフィードする方法

私はすべての画像をダウンロードするためにpaperclipを試みましたが、HTTMultiPartyで画像を投稿しようとすると、Paperclip :: Attachmentタイプを処理する方法がわかりません。

私はバイナリにファイルを保存するpaperclipの代わりにopen-uriを使うことを考えています。誰かが私にその例を教えてもらえますか?そして、httmultipartyとは別にAPIに画像を投稿するための良いオプションがあります。

+0

"私は、ファイルをバイナリに保存するpaperclipの代わりにopen-uriを使うことを考えています。誰かが私にその例を教えてもらえますか?" > http://stackoverflow.com/questions/1074309/how-do-i-download-a-picture-using-ruby – orde

答えて

0

解決策が変更できるので、この質問に自分自身で答える方が良いです。

httpspart(ダウンロード&アップロードテキスト)+ paperclip(URLで画像をダウンロード)+ httmultiparty(画像をアップロード)でアプリのフェッチとフィードスルーを行うことができます。私に

、httpartyは、APIに対処するための最も簡単な方法です、コードは簡単に次のように行うことができます。

response = HTTParty.get('url') 
response = HTTParty.post('url', 
         :headers => 'head content', 
         :body => {'data':'data content'}) 

コード例クリップにここにある:answer on stack over flow

重要な部分は、クリップを解析していますバイナリファイルへのイメージ、コードが行く:

Paperclip.io_adapters.for(productData[0].image).read 

あなたはPUTやPOST Rの値として、ファイルのインスタンスでクエリを渡すと、最後の例は、HTTmultipartyです

class ImgClient 
    include HTTMultiParty 
    base_uri 'http://localhost:3000' 
end 
respond = ImgClient.post('url', 
         :headers => head, 
         :query => { 
          :image => Paperclip.io_adapters.for(product.image) 
         }) 

希望、これは他のAPI初心者のための参考になります:equest、ラッパーは離れて、それはかなりhttpartyと同じであることから、マルチパートアップロードを実行するために魔法とマルチポストのビットを使用します。

関連する問題