tag:crieit.net,2005:https://crieit.net/tags/Faraday/feed 「Faraday」の記事 - Crieit Crieitでタグ「Faraday」に投稿された最近の記事 2019-07-09T21:50:57+09:00 https://crieit.net/tags/Faraday/feed tag:crieit.net,2005:PublicArticle/15219 2019-07-09T21:24:53+09:00 2019-07-09T21:50:57+09:00 https://crieit.net/posts/Faraday Faradayで変数内のデータをファイルとして送信する <p>Faradayを使うと簡単にファイルをmultipart形式でPOSTしてアップロードしたりすることができる。</p> <p>具体的にはUploadIOを使うことで簡単に指定できる。</p> <pre><code class="ruby">params = { file: Faraday::UploadIO.new("file.txt", "text/plain") } </code></pre> <p>ただ、送信したいデータを元々変数で持っている場合、この方法だとわざわざ一度ファイルに保存して送信しなければならない。テキストやRuby上で生成したCSV、ネットワーク経由で画像などはファイルでなく変数に持っているだけの場合も多いと思う。その場合はなんとなく面倒だし冗長。</p> <p>この場合、UploadIOのソースを見てみたところIOであれば問題ないようなので下記のようにして文字列をそのまま送信することもできる。</p> <pre><code class="ruby">params = { file: Faraday::UploadIO.new(StringIO.new(text_value), 'text/plain') } </code></pre> <p>ソースはこのへん?  あとファイル名必要な時どうするのかは知らない。(と思ったらここのソースになんか書いてある)</p> <p><a target="_blank" rel="nofollow noopener" href="https://github.com/socketry/multipart-post/blob/master/lib/composite_io.rb#L75">https://github.com/socketry/multipart-post/blob/master/lib/composite_io.rb#L75</a></p> だら@Crieit開発者