Ein experimentelles FTP -Server -Framework. Durch Bereitstellung einer einfachen Treiberklasse, die auf eine Handvoll Methoden reagiert, können Sie einen vollständigen FTP -Server haben.
Einige Muster -Anwendungsfälle enthalten anhaltende Daten an:
Es gibt einen Beispiel für In -Memory -Treiber - siehe die folgenden Nutzungsanweisungen, damit die Schritte verwendet werden können.
Die vollständige Dokumentation für das Paket finden Sie auf Godoc
go get github.com/yob/graval
Um einen FTP -Server zu starten, müssen Sie einen Treiber bereitstellen, der mit Ihrer Persistenzschicht spricht - der erforderliche Treibervertrag ist unten aufgeführt.
Als Demo gibt es einen In-Memory-Treiber. Sie können es mit diesem Befehl erstellen:
go install github.com/yob/graval/graval-mem
Dann führen Sie es aus:
./bin/graval-mem
Und schließlich eine Verbindung zum Server mit jedem FTP -Client und den folgenden Details herstellen:
host: 127.0.0.1
username: test
password: 1234
Ihr Treiber muss eine Reihe einfacher Methoden implementieren. Sie können den erforderlichen Vertrag in den Paketdokumenten auf Godoc anzeigen
FTP ist ein unglaublich unsicheres Protokoll. Achten Sie darauf, dass Benutzer mit einem wichtigen Benutzernamen oder Kennwort authentifiziert werden.
Diese Bibliothek wird unter den Bedingungen der MIT -Lizenz verteilt. Weitere Informationen finden Sie in der mitgelieferten Datei.
Alle Vorschläge und Patches willkommen, vorzugsweise über ein Git -Repository, aus dem ich ziehen kann. Wenn sich diese Bibliothek für Sie als nützlich erweist, lassen Sie es mich bitte wissen.
Es gibt eine Reihe von RFCs, die zusammen das FTP -Protokoll angeben. In chronologischer Reihenfolge sind die nützlichsten:
Für eine englische Zusammenfassung, die etwas lesbarer ist als die RFCs, und einige Kommentare dazu geben, welche Funktionen tatsächlich nützlich oder relevant sind 24 Jahre nach der Veröffentlichung von RFC959:
Eine Geschichtsstunde finden Sie in Anhang III von RCF959. Es listet die vorhergehenden (veralteten) RFC -Dokumente auf, die sich auf Dateitransfers beziehen, einschließlich des alten RFC114 von 1971, "ein Dateiübertragungsprotokoll".
Diese Bibliothek basiert stark auf EM-FTPD, einem FTPD-Framework mit ähnlichen Designzielen innerhalb der Ökosysteme von Ruby und EventMachine. Es hat gut genug funktioniert, aber Sie wissen, Rückrufe und Eventschleifen machen mir etwas zu etwas.