Armadilloフォーラム

CGIによる大きなファイルのアップロードについて

y_kudo_ncpl

2014年9月29日 11時33分

工藤@NCPLと申します。お世話になります。

CGIを用いて、Armadillo440へファイルを送り込んでユーザーランドの更新を行うことを検討しております。
添付の dnldr.cと upload3.htmlを使い、小さなファイルのテスト送信(32KB程度)は出来たのですが
実際のユーザーランドのイメージを送ると添付errmsg.pngのような表示となりファイルが送られません。
(余談ですが、実際のユーザランド書き込みはしていませんが、/binへのファイルのコピーでroot権限が必要なコマンドが実行できることは確認しました。)
試した範囲では80KBくらいではNG,34KBではOKと、どうも64KB程度に壁がありそうです。

HTML側で対処すべきか、CGI側で対処すべきかも見当が付いていない状況です。
どこから手をつけるのが良いかアドバイスをいただけると幸甚です。

ファイル ファイルの説明
dnldr.c CGIのソース
upload3.html Armadillo側のアップロード用HTML
errmsg.png 表示されたメッセージ
コメント

y_kudo_ncpl

2014年9月29日 11時38分

工藤@NCPLです。
HTMLはクリックすると開いちゃうのでこちらへ直に書きます。

<form action='./dnldr.cgi' method='post' enctype='multipart/form-data'>
<input type='file' name='name'>
<input type='submit' value='send'>
</form>

よろしくお願いします。

y_kudo_ncpl

2014年9月29日 12時55分

工藤@NCPLです。
 続報ですが、WireSharkでやり取りしてるパケットを覗いてみたら
ArmadilloからPC(ブラウザ)に
 413 Request Entity Too Large を返してるようです。

lighttpdの設定変更で回避できるのかな?

at_takenoshita

2014年9月29日 13時25分

竹之下です。

以前、「大きなサイズのファイルをアップロードできない」という話題がありました。

下記、「thttpdからlighttpdへの移行に関して」というスレッド参照。
http://lists.atmark-techno.com/pipermail/armadillo/2008-September/threa…

lighttpdはファイルをアップロードする際、/var/tmpに一時的にファイルを置くため、
そこの容量が0になるとアップロードできなくなるという現象です。

もし、同じ原因だった場合、解決策としては、下記のように「/var/tmpをtmpfsにする」という方法があります。
http://lists.atmark-techno.com/pipermail/armadillo/2008-September/00343…

参考になれば。

y_kudo_ncpl

2014年9月29日 13時39分

ありがとうございます。確認してみます。

y_kudo_ncpl

2014年9月29日 16時32分

竹之下様
 ご指摘の通り、「/var/tmpをtmpfsにする」 事で思惑通りに動作しました。
ありがとうございました。

> 竹之下です。
>
> 以前、「大きなサイズのファイルをアップロードできない」という話題がありました。
>
> 下記、「thttpdからlighttpdへの移行に関して」というスレッド参照。
> http://lists.atmark-techno.com/pipermail/armadillo/2008-September/threa…
>
>
> lighttpdはファイルをアップロードする際、/var/tmpに一時的にファイルを置くため、
> そこの容量が0になるとアップロードできなくなるという現象です。
>
> もし、同じ原因だった場合、解決策としては、下記のように「/var/tmpをtmpfsにする」という方法があります。
> http://lists.atmark-techno.com/pipermail/armadillo/2008-September/00343…
>
> 参考になれば。
>

y_kudo_ncpl

2014年9月29日 16時32分

竹之下様
 ご指摘の通り、「/var/tmpをtmpfsにする」 事で思惑通りに動作しました。
ありがとうございました。

> 竹之下です。
>
> 以前、「大きなサイズのファイルをアップロードできない」という話題がありました。
>
> 下記、「thttpdからlighttpdへの移行に関して」というスレッド参照。
> http://lists.atmark-techno.com/pipermail/armadillo/2008-September/threa…
>
>
> lighttpdはファイルをアップロードする際、/var/tmpに一時的にファイルを置くため、
> そこの容量が0になるとアップロードできなくなるという現象です。
>
> もし、同じ原因だった場合、解決策としては、下記のように「/var/tmpをtmpfsにする」という方法があります。
> http://lists.atmark-techno.com/pipermail/armadillo/2008-September/00343…
>
> 参考になれば。
>