実験的なFTPサーバーフレームワーク。ほんの一握りのメソッドに応答するシンプルなドライバークラスを提供することにより、完全なFTPサーバーを使用できます。
一部のサンプルユースケースには、データの持続データが含まれます。
使用可能なサンプルインメモリドライバーがあります - それを使用する手順については、以下の使用法を参照してください。
パッケージの完全なドキュメントは、Godocで入手できます
go get github.com/yob/graval
FTPサーバーを起動するには、Persistenceレイヤーを通知するドライバーを提供する必要があります。必要なドライバー契約は以下にリストされています。
デモとして利用可能なサンプルインメモリドライバーがあります。このコマンドで作成できます。
go install github.com/yob/graval/graval-mem
その後、それを実行します:
./bin/graval-mem
そして最後に、FTPクライアントと次の詳細でサーバーに接続します。
host: 127.0.0.1
username: test
password: 1234
ドライバーは、いくつかの簡単な方法を実装する必要があります。 Godocのパッケージドキュメントで必要な契約を表示できます
FTPは非常に不安定なプロトコルです。重要なユーザー名またはパスワードでユーザーに認証を強制することに注意してください。
このライブラリは、MITライセンスの条件に基づいて配布されます。詳細については、付属のファイルを参照してください。
すべての提案とパッチは、できれば私が引くことができるgitリポジトリを介して歓迎します。このライブラリがあなたに役立つことが証明されている場合は、私に知らせてください。
FTPプロトコルを一緒に指定するRFCの範囲があります。年代順に、より有用なものは次のとおりです。
英語の要約については、RFCよりもやや読みやすく、RFC959が公開されてから24年後に実際に有用または関連する機能についての解説を提供します。
履歴レッスンについては、RCF959の付録IIIをご覧ください。 1971年の「ファイル転送プロトコル」を含むファイル転送に関連する前の(廃止)RFCドキュメントをリストします。
このライブラリは、RubyおよびEventmachineエコシステム内で同様の設計目標を持つFTPDフレームワークであるEM-FTPDに大きく基づいています。それは十分にうまくいきましたが、コールバックとイベントループは私に何かを作ります。