mirror of
https://github.com/rclone/rclone.git
synced 2024-11-28 11:25:18 +01:00
serve ftp: convert options to new style
This commit is contained in:
parent
eec95a164d
commit
58da1a165c
@ -25,7 +25,6 @@ import (
|
|||||||
"github.com/rclone/rclone/fs/config/flags"
|
"github.com/rclone/rclone/fs/config/flags"
|
||||||
"github.com/rclone/rclone/fs/config/obscure"
|
"github.com/rclone/rclone/fs/config/obscure"
|
||||||
"github.com/rclone/rclone/fs/log"
|
"github.com/rclone/rclone/fs/log"
|
||||||
"github.com/rclone/rclone/fs/rc"
|
|
||||||
"github.com/rclone/rclone/vfs"
|
"github.com/rclone/rclone/vfs"
|
||||||
"github.com/rclone/rclone/vfs/vfscommon"
|
"github.com/rclone/rclone/vfs/vfscommon"
|
||||||
"github.com/rclone/rclone/vfs/vfsflags"
|
"github.com/rclone/rclone/vfs/vfsflags"
|
||||||
@ -34,40 +33,55 @@ import (
|
|||||||
ftp "goftp.io/server/v2"
|
ftp "goftp.io/server/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// OptionsInfo descripts the Options in use
|
||||||
|
var OptionsInfo = fs.Options{{
|
||||||
|
Name: "addr",
|
||||||
|
Default: "localhost:2121",
|
||||||
|
Help: "IPaddress:Port or :Port to bind server to",
|
||||||
|
}, {
|
||||||
|
Name: "public_ip",
|
||||||
|
Default: "",
|
||||||
|
Help: "Public IP address to advertise for passive connections",
|
||||||
|
}, {
|
||||||
|
Name: "passive_port",
|
||||||
|
Default: "30000-32000",
|
||||||
|
Help: "Passive port range to use",
|
||||||
|
}, {
|
||||||
|
Name: "user",
|
||||||
|
Default: "anonymous",
|
||||||
|
Help: "User name for authentication",
|
||||||
|
}, {
|
||||||
|
Name: "pass",
|
||||||
|
Default: "",
|
||||||
|
Help: "Password for authentication (empty value allow every password)",
|
||||||
|
}, {
|
||||||
|
Name: "cert",
|
||||||
|
Default: "",
|
||||||
|
Help: "TLS PEM key (concatenation of certificate and CA certificate)",
|
||||||
|
}, {
|
||||||
|
Name: "key",
|
||||||
|
Default: "",
|
||||||
|
Help: "TLS PEM Private key",
|
||||||
|
}}
|
||||||
|
|
||||||
// Options contains options for the http Server
|
// Options contains options for the http Server
|
||||||
type Options struct {
|
type Options struct {
|
||||||
//TODO add more options
|
//TODO add more options
|
||||||
ListenAddr string // Port to listen on
|
ListenAddr string `config:"addr"` // Port to listen on
|
||||||
PublicIP string // Passive ports range
|
PublicIP string `config:"public_ip"` // Passive ports range
|
||||||
PassivePorts string // Passive ports range
|
PassivePorts string `config:"passive_port"` // Passive ports range
|
||||||
BasicUser string // single username for basic auth if not using Htpasswd
|
BasicUser string `config:"user"` // single username for basic auth if not using Htpasswd
|
||||||
BasicPass string // password for BasicUser
|
BasicPass string `config:"pass"` // password for BasicUser
|
||||||
TLSCert string // TLS PEM key (concatenation of certificate and CA certificate)
|
TLSCert string `config:"cert"` // TLS PEM key (concatenation of certificate and CA certificate)
|
||||||
TLSKey string // TLS PEM Private key
|
TLSKey string `config:"key"` // TLS PEM Private key
|
||||||
}
|
|
||||||
|
|
||||||
// DefaultOpt is the default values used for Options
|
|
||||||
var DefaultOpt = Options{
|
|
||||||
ListenAddr: "localhost:2121",
|
|
||||||
PublicIP: "",
|
|
||||||
PassivePorts: "30000-32000",
|
|
||||||
BasicUser: "anonymous",
|
|
||||||
BasicPass: "",
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Opt is options set by command line flags
|
// Opt is options set by command line flags
|
||||||
var Opt = DefaultOpt
|
var Opt Options
|
||||||
|
|
||||||
// AddFlags adds flags for ftp
|
// AddFlags adds flags for ftp
|
||||||
func AddFlags(flagSet *pflag.FlagSet) {
|
func AddFlags(flagSet *pflag.FlagSet) {
|
||||||
rc.AddOption("ftp", &Opt)
|
flags.AddFlagsFromOptions(flagSet, "", OptionsInfo)
|
||||||
flags.StringVarP(flagSet, &Opt.ListenAddr, "addr", "", Opt.ListenAddr, "IPaddress:Port or :Port to bind server to", "")
|
|
||||||
flags.StringVarP(flagSet, &Opt.PublicIP, "public-ip", "", Opt.PublicIP, "Public IP address to advertise for passive connections", "")
|
|
||||||
flags.StringVarP(flagSet, &Opt.PassivePorts, "passive-port", "", Opt.PassivePorts, "Passive port range to use", "")
|
|
||||||
flags.StringVarP(flagSet, &Opt.BasicUser, "user", "", Opt.BasicUser, "User name for authentication", "")
|
|
||||||
flags.StringVarP(flagSet, &Opt.BasicPass, "pass", "", Opt.BasicPass, "Password for authentication (empty value allow every password)", "")
|
|
||||||
flags.StringVarP(flagSet, &Opt.TLSCert, "cert", "", Opt.TLSCert, "TLS PEM key (concatenation of certificate and CA certificate)", "")
|
|
||||||
flags.StringVarP(flagSet, &Opt.TLSKey, "key", "", Opt.TLSKey, "TLS PEM Private key", "")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
@ -33,7 +33,7 @@ const (
|
|||||||
func TestFTP(t *testing.T) {
|
func TestFTP(t *testing.T) {
|
||||||
// Configure and start the server
|
// Configure and start the server
|
||||||
start := func(f fs.Fs) (configmap.Simple, func()) {
|
start := func(f fs.Fs) (configmap.Simple, func()) {
|
||||||
opt := DefaultOpt
|
opt := Opt
|
||||||
opt.ListenAddr = testHOST + ":" + testPORT
|
opt.ListenAddr = testHOST + ":" + testPORT
|
||||||
opt.PassivePorts = testPASSIVEPORTRANGE
|
opt.PassivePorts = testPASSIVEPORTRANGE
|
||||||
opt.BasicUser = testUSER
|
opt.BasicUser = testUSER
|
||||||
|
Loading…
Reference in New Issue
Block a user