LoginSignup
1
2

More than 5 years have passed since last update.

【なんか】投函専用FTPサーバのプロトタイプ【できた】

Posted at

TL;DR

  • できあがりはこちら → koshigoe/transpotter
  • ProFTPD を採用
  • FTP, SFTP に対応
  • 投函専用 = put-only = アップロードされたファイルは S3 に転送して抹消
  • FTP アカウントは DB テーブルを使って認証
  • FTP アカウントを WebAPI 経由で管理できる様にした
  • ホストを disposable にできている、気がしている(FTP サーバ機能については)
  • DNS ラウンドロビンを雑に試した

未解決

  • PUT 乱発による S3 破産問題
  • ディレクトリの上限問題
  • Vagrant で検証している時に FTP だけ SQLUserInfo が効かなくなった問題(VM を作り直したら解決したが……)
  • 本当にこんなものが必要なのか問題

感想

何か書けるかなと思いましたが、普通に ProFTPD を使っているだけなので特に書く事がありませんでした。ひとまず、試作品の披露くらいはしておこう、という思い出 Qiita です。

ProFTPD について今回得た知識をひねり出すと↓くらいでしょうか。

  • Global ディレクティブ内で宣言したディレクティブは VirtualHost などに引き継がれる(設定の共通化)
  • VirtualHost ディレクティブでホスト名を使った場合、起動時に名前解決できないと起動に失敗する
  • mod_exec モジュールで実行するコマンドの実行時の環境変数はまっさら
    • /etc/environment とか systemd の EnvironmentFile とかが使えるのかと思いましたがそんな事は無く
  • mod_exec モジュールで実行したコマンドの標準出力、標準エラーがどこにいくのかよくわかってません

正直、本題よりも itamae と戯れていた思い出の方が強いのですが、itamae について書けることも特になく。

敢えて挙げるとすれば、itamae ssh に ssh_config のパスを指定するための --ssh-config を追加する PRを送った事くらいでしょうか。ただ、 -F オプションのネーミングセンスについて指摘をもらって修正したら、急に CI が通らなくなりました。塩漬け濃厚です。bundle の man ページが開いてキー入力待ちになって wercker がタイムアウトするとか、何が起きているのかよく分かりません。ローカルで再現できるなら調べようもあるのですが。

そんな感じです。

おまけ:思い出

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2