sftp

package
v1.2.2 Latest Latest
Warning

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

Go to latest
Published: Jan 9, 2021 License: MIT Imports: 21 Imported by: 1

Documentation

Index

Constants

View Source
const (
	PermissionFileRead        = "file.read"
	PermissionFileReadContent = "file.read-content"
	PermissionFileCreate      = "file.create"
	PermissionFileUpdate      = "file.update"
	PermissionFileDelete      = "file.delete"
)
View Source
const (
	// Extends the default SFTP server to return a quota exceeded error to the client.
	//
	// @see https://tools.ietf.org/id/draft-ietf-secsh-filexfer-13.txt
	ErrSshQuotaExceeded = fxerr(15)
)

Variables

This section is empty.

Functions

func Initialize

func Initialize(config config.SystemConfiguration) error

func New

func New(c *Server) error

Create a new server configuration instance.

Types

type FileSystem

type FileSystem struct {
	UUID        string
	Permissions []string
	ReadOnly    bool
	User        User
	Cache       *cache.Cache

	PathValidator func(fs FileSystem, p string) (string, error)
	HasDiskSpace  func(fs FileSystem) bool
	// contains filtered or unexported fields
}

func (FileSystem) Filecmd

func (fs FileSystem) Filecmd(request *sftp.Request) error

Filecmd hander for basic SFTP system calls related to files, but not anything to do with reading or writing to those files.

func (FileSystem) Filelist

func (fs FileSystem) Filelist(request *sftp.Request) (sftp.ListerAt, error)

Filelist is the handler for SFTP filesystem list calls. This will handle calls to list the contents of a directory as well as perform file/folder stat calls.

func (FileSystem) Fileread

func (fs FileSystem) Fileread(request *sftp.Request) (io.ReaderAt, error)

Fileread creates a reader for a file on the system and returns the reader back.

func (FileSystem) Filewrite

func (fs FileSystem) Filewrite(request *sftp.Request) (io.WriterAt, error)

Filewrite handles the write actions for a file on the system.

type ListerAt

type ListerAt []os.FileInfo

func (ListerAt) ListAt

func (l ListerAt) ListAt(f []os.FileInfo, offset int64) (int, error)

Returns the number of entries copied and an io.EOF error if we made it to the end of the file list. Take a look at the pkg/sftp godoc for more information about how this function should work.

type Server

type Server struct {
	Settings Settings
	User     User

	PathValidator      func(fs FileSystem, p string) (string, error)
	DiskSpaceValidator func(fs FileSystem) bool

	// Validator function that is called when a user connects to the server. This should
	// check against whatever system is desired to confirm if the given username and password
	// combination is valid. If so, should return an authentication response.
	CredentialValidator func(r api.SftpAuthRequest) (*api.SftpAuthResponse, error)
	// contains filtered or unexported fields
}

func (Server) AcceptInboundConnection

func (c Server) AcceptInboundConnection(conn net.Conn, config *ssh.ServerConfig)

Handles an inbound connection to the instance and determines if we should serve the request or not.

func (*Server) Initialize

func (c *Server) Initialize() error

Initialize the SFTP server and add a persistent listener to handle inbound SFTP connections.

type Settings

type Settings struct {
	BasePath    string
	ReadOnly    bool
	BindPort    int
	BindAddress string
}

type User

type User struct {
	Uid int
	Gid int
}

Jump to

Keyboard shortcuts

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