ftplibを使ってPure Pythonでレンタルサーバーとのファイル送受信をしたい。
レンタルサーバーを借りた一番の目的はこのファイル送受信にあるのでそこのところを調査する。
条件は、
①インターネットにより接続できる場所にデータを置く
②一般公開はしない
③Pythonを使ったスクリプトによって1アクションでサーバーからローカルへのミラーリングを行う
④アップロードも想定(詳細未定)
⑤同時複数人接続ができる(できれば1アカウントの認証で)
以上。
これを満たしてくれる仕組みならFTPSでなくても良いのだけどそこそこセキュアでそこそこ手軽なものがFTPSのようだったので、とりあえずはPython(ftplib)での接続を練習する。
参考《コピペ元》にするのはこのサイト。
そもそもftplibがとても親切なので書こうと思えばこの形にはなりそうなのだけど、個人的に役だったのはprot_p()の設定を1行入れる必要があるという点。
FTPSはHTTPで言うところのHTTPSみたいなもので、SSL認証で通信内容の傍受・改変をさせませんよ的なシステムらしいのだが、FTP_TLSクラスで接続を行ったのみでは「接続情報に関する」暗号化のみが行われ、その続きでデータ送受信をしてもその中身は暗号化されないのだそうな。
そのため、データのやり取りまでセキュアにしたければprot_p()で安全宣言してくださいねということらしい。
そこのところはインスタンス化時点で一気にやってくれたらいいのにと思うけど、確かにデータの中身とログイン情報とだったらログイン情報の方が漏れたら怖いし、そんなもんですかね。(財布落として怖いのは現金盗まれることより運転免許証が悪用されることみたいなアレですね)
実際上記サイトからのコピペで練習するけどここに実装のコードは載せないでおく。ほとんどコピペなので流石に気が引けるし恥ずかしい。後で実験をして、速度感とかの結果だけ書いておきたい。