はじめに
コンテスト中にもっと簡単に素早くファイルサーバ立てれたらいいのになあと思い始めたのがきっかけ。目指すのは、WinSCPのようなクライアントで手早くアクセスし、ファイル転送やファイルオープンが簡単にできる環境です。
WebDAVに至るまでの過程
単にファイルサーバと言っても色々ありますが、パッと浮かんだ候補について少し説明しておきます。
- SFTPは?
SSHサーバを下手にいじって壊すとログインできなくなるため、コンテストではアンタッチャブルな世界(もちろん弄れないように設定されているはずではある) - FTPは?
SSHポート転送を間に入れることになった場合に、少し手間(できなくはないはず) - WebDAVは?
SSHポート転送にも耐え、重大な環境破壊を起こす可能性は少なそう
ということで、WebDAVサーバをたてる方向で模索することにしました。
選ばれたのはWsgiDAVでした
- Nginxは(個人的に)慣れているので簡単だが、デフォルトだとモジュールが足りないのでソースビルドしないといけない。
- Apacheだと不慣れであることと、触る設定ファイルが多くてよくわからない。もしコンテストでApacheが必須だった場合上手く共存させる自身がない。
ということでメジャーなWebサーバは諦めました。
調べてみたところ、WsgiDAVがとても手軽。
https://github.com/mar10/wsgidav
※動作確認はUbuntu20.04行いましたが、Pythonが入ってるならwindowsでもMacでも大丈夫なはず。
インストール
$ pip install wsgidav cheroot
実行
動作確認。環境によってはsudoいるかも。
$ wsgidav --host=0.0.0.0 --port=8080 --root=/home/ --auth anonymous
あとはブラウザなりWinSCPなりでアクセスしてみる。
動作確認が終わったら、nohupをつけて実行。
$ nohup wsgidav --host=0.0.0.0 --port=8080 --root=/home/ --auth anonymous > /dev/null 2>&1 &
感想
簡単すぎました。