stringIOをファイルとしてサーバーにアップロードしたいとします。 私は要求をするためにレールを使用していません。ルビーといくつかの宝石だけです。 私は以下のようにStringIOを作成しました:アップロード/ポストストリングIOファイル
require 'rest-client'
require 'zip'
... some code
stream = Zip::OutputStream::write_buffer do |zip|
... code that download files and packs them
end
stream.rewind
RestClient.post('somepath', { file: stream.read }, headers)
RestClientは、それが少し簡単にHTTPリクエストを送信することができますだけでいくつかの便利な逸品です。 ので、私の問題は、私は、私はエラー
ArgumentError - invalid byte sequence in UTF-8:
activesupport (4.2.6) lib/active_support/core_ext/object/blank.rb:117:in `blank?'
carrierwave (0.10.0) lib/carrierwave/sanitized_file.rb:127:in `is_path?'
carrierwave (0.10.0) lib/carrierwave/sanitized_file.rb:93:in `size'
carrierwave (0.10.0) lib/carrierwave/sanitized_file.rb:136:in `empty?'
carrierwave (0.10.0) lib/carrierwave/uploader/cache.rb:119:in `cache!'
carrierwave (0.10.0) lib/carrierwave/mount.rb:329:in `cache'
carrierwave (0.10.0) lib/carrierwave/mount.rb:163:in `export='
carrierwave (0.10.0) lib/carrierwave/orm/activerecord.rb:39:in `export='
app/controllers/exports_controller.rb:17:in `upload'
(私は、ファイルを保存するためにcarrierwaveを使用しています)
を取得要求を受信したときに、コントローラ内のサーバー側で私はだと考えるということですstringIOを正しく処理するのではなく、正直なところ、投稿要求にどのように渡してファイルのように振るべきか正確には分かりません。
アイデア?
何をしていきますオブジェクト
よう
https://github.com/carrierwaveuploader/carrierwave/wiki/How-to:-Upload-from-a-string-in-Rails-3-or-later
とサンプルラッパーをヘッダーは送信していますか?このエラーメッセージは、あなたのPOSTヘッダが正しくないと思うようになります。特に、content-typeです。サーバーはどのコンテンツタイプを受け入れますか? – Tom
はヘッダーに関連していない問題が判明しました。私の答えは以下を参照してください。うまくいけばそれは将来誰かを助けるでしょう – beniutek