ftp

package
v3.6.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 29, 2021 License: AGPL-3.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	DefaultConfig = &Config{
		PidFile:      `ftp.pid`,
		DBType:       `mysql`,
		FTPStoreType: `file`,

		Name:           `TinyFTP`,
		PassivePorts:   `6001-7000`,
		Port:           25,
		PublicIP:       `127.0.0.1`,
		WelcomeMessage: `Welcome to the TinyFTP`,
	}
	DefaultPidFile = `ftp.pid`
)

Functions

func SetDefaults added in v3.6.3

func SetDefaults(c *Config)

Types

type Auth

type Auth struct {
	*model.FtpUser
}

func NewAuth

func NewAuth() *Auth

func (*Auth) CheckPasswd

func (a *Auth) CheckPasswd(ftpCtx *ftpserver.Context, username string, password string) (bool, error)

type Config

type Config struct {
	PidFile      string            `json:"-"`
	DBType       string            `json:"dbType"`
	FTPStoreType string            `json:"ftpStoreType"`
	FTPOptions   map[string]string `json:"ftpOptions"`

	// Server Name, Default is Go Ftp Server
	Name string `json:"name"`

	// The hostname that the FTP server should listen on. Optional, defaults to
	// "::", which means all hostnames on ipv4 and ipv6.
	Hostname string `json:"hostName"`

	// Public IP of the server
	PublicIP string `json:"publicIP"`

	// Passive ports
	PassivePorts string `json:"passivePorts"`

	// The port that the FTP should listen on. Optional, defaults to 3000. In
	// a production environment you will probably want to change this to 21.
	Port int `json:"port"`

	// use tls, default is false
	TLS bool `json:"tls"`

	// if tls used, cert file is required
	CertFile string `json:"certFile"`

	// if tls used, key file is required
	KeyFile string `json:"keyFile"`

	// If ture TLS is used in RFC4217 mode
	ExplicitFTPS bool `json:"explicitFTPS"`

	WelcomeMessage string `json:"welcomeMessage"`
	// contains filtered or unexported fields
}

func (*Config) Init

func (c *Config) Init() *Config

func (*Config) SetAuth

func (c *Config) SetAuth(auth ftpserver.Auth) *Config

func (*Config) SetAuthByType

func (c *Config) SetAuthByType(storeType string) *Config

func (*Config) SetDriver

func (c *Config) SetDriver(driver ftpserver.Driver) *Config

func (*Config) SetPerm

func (c *Config) SetPerm(perm ftpserver.Perm, owner string, group string) *Config

func (*Config) SetPermByType

func (c *Config) SetPermByType(storeType string, owner string, group string) *Config

func (*Config) SetPort

func (c *Config) SetPort(port int) *Config

func (*Config) SetStoreByType

func (c *Config) SetStoreByType(storeType string, options ...map[string]string) *Config

func (*Config) Start

func (c *Config) Start() error

Start start ftp server

type FileDriver

type FileDriver struct {
	ftpserver.Perm
	// contains filtered or unexported fields
}

func (*FileDriver) ChangeDir

func (driver *FileDriver) ChangeDir(ftpCtx *ftpserver.Context, path string) error

func (*FileDriver) DeleteDir

func (driver *FileDriver) DeleteDir(ftpCtx *ftpserver.Context, path string) error

func (*FileDriver) DeleteFile

func (driver *FileDriver) DeleteFile(ftpCtx *ftpserver.Context, path string) error

func (*FileDriver) GetFile

func (driver *FileDriver) GetFile(ftpCtx *ftpserver.Context, path string, offset int64) (int64, io.ReadCloser, error)

func (*FileDriver) ListDir

func (driver *FileDriver) ListDir(ftpCtx *ftpserver.Context, path string, callback func(os.FileInfo) error) error

func (*FileDriver) MakeDir

func (driver *FileDriver) MakeDir(ftpCtx *ftpserver.Context, path string) error

func (*FileDriver) PutFile

func (driver *FileDriver) PutFile(ftpCtx *ftpserver.Context, destPath string, data io.Reader, offset int64) (int64, error)

func (*FileDriver) Rename

func (driver *FileDriver) Rename(ftpCtx *ftpserver.Context, fromPath string, toPath string) error

func (*FileDriver) Stat

func (driver *FileDriver) Stat(ftpCtx *ftpserver.Context, path string) (os.FileInfo, error)

type FileInfo

type FileInfo struct {
	os.FileInfo
	// contains filtered or unexported fields
}

func (*FileInfo) Group

func (f *FileInfo) Group() string

func (*FileInfo) Mode

func (f *FileInfo) Mode() os.FileMode

func (*FileInfo) Owner

func (f *FileInfo) Owner() string

type Perm

type Perm struct {
	*ftpserver.SimplePerm
}

func NewPerm

func NewPerm(owner, group string) *Perm

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL