sinatraのサーバーにwgetにてファイルのアップロードを行いたいのですが、
以下ERROR EOFErrorが発生してします。
ブラウザからのアップロードは正常に動きますのでwgetのシェルスクリプト側に問題があるかとは思うのですが行き詰っています。。
ご教示いただければと思います。よろしくお願いします。
以下がエラー内容と実際のwget実行シェルスクリプトです。
■エラー内容
[2015-11-08 11:50:08] ERROR EOFError: bad content body /Users/user/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/multipart/parser.rb:97:in `block in fast_forward_to_first_boundary' /Users/user/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/multipart/parser.rb:95:in `loop' /Users/user/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/multipart/parser.rb:95:in `fast_forward_to_first_boundary' /Users/user/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/multipart/parser.rb:53:in `parse' /Users/user/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/multipart.rb:25:in `parse_multipart' /Users/user/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/request.rb:375:in `parse_multipart' /Users/user/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/request.rb:207:in `POST' (erb):222:in `pretty' /Users/user/.rbenv/versions/2.2.3/lib/ruby/2.2.0/erb.rb:863:in `eval' /Users/user/.rbenv/versions/2.2.3/lib/ruby/2.2.0/erb.rb:863:in `result' /Users/user/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/showexceptions.rb:97:in `pretty' /Users/user/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/sinatra-1.4.6/lib/sinatra/show_exceptions.rb:30:in `rescue in call' /Users/user/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/sinatra-1.4.6/lib/sinatra/show_exceptions.rb:21:in `call' /Users/user/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:181:in `call' /Users/user/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:2021:in `call' /Users/user/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1486:in `block in call' /Users/user/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1795:in `synchronize' /Users/user/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1486:in `call' /Users/user/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/handler/webrick.rb:88:in `service' /Users/user/.rbenv/versions/2.2.3/lib/ruby/2.2.0/webrick/httpserver.rb:138:in `service' /Users/user/.rbenv/versions/2.2.3/lib/ruby/2.2.0/webrick/httpserver.rb:94:in `run' /Users/user/.rbenv/versions/2.2.3/lib/ruby/2.2.0/webrick/server.rb:294:in `block in start_thread' localhost - - [08/Nov/2015:11:50:08 JST] "POST /upload HTTP/1.1" 500 296 - -> /upload
■シェルスクリプト
sh
1# バウンダリ文字列は世界標準時基準時点からの秒数とする 2boundary="boundary-`date '+%s'`" 3# 受信する cgi の <input type="file" name="..."> で指定されるフォーム名 4formname="file" 5# 送信するファイル 6filename="post.txt" 7# 送信するファイルのデータ 8contents="`cat ${filename}`" 9 10# multipart/form-data 形式のデータ生成 11data=" 12--${boundary} 13Content-Disposition: form-data; name=\"file\"; filename=\"post.txt\" 14Content-Type: text/plain 15 16${contents} 17--${boundary}-- 18" 19 20# ファイルの送信処理 21wget --header="Content-Type: multipart/form-data; boundary=${boundary}" \ 22 --post-data="$data" http://localhost:4567/upload
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/11/08 04:40