Documentation ¶
Overview ¶
Package scp handles file uploads and downloads via scp command
Index ¶
- Constants
- func ParseSCPDestination(s string) (login, host, dest string)
- type Command
- func CreateCommand(params Config) Command
- func CreateDownloadCommand(config Config) (Command, error)
- func CreateHTTPDownloadCommand(remoteLocation string, w http.ResponseWriter, progress io.Writer) (Command, error)
- func CreateHTTPUploadCommand(remoteLocation string, httpReq *http.Request, progress io.Writer) (Command, error)
- func CreateUploadCommand(config Config) (Command, error)
- type Config
- type FileInfo
- type FileSystem
- type Flags
Constants ¶
const ( // OKByte is scp OK message bytes OKByte = 0x0 // WarnByte tells that next goes a warning string WarnByte = 0x1 // ErrByte tells that next goes an error string ErrByte = 0x2 )
Variables ¶
This section is empty.
Functions ¶
func ParseSCPDestination ¶
ParseSCPDestination takes a string representing a remote resource for SCP to download/upload, like "user@host:/path/to/resource.txt" and returns 3 components of it
Types ¶
type Command ¶
type Command interface { // Execute processes SCP traffic Execute(ch io.ReadWriter) error // GetRemoteShellCmd returns a remove shell command that // has to be executed on the remove server (handled by Teleport) GetRemoteShellCmd() (string, error) }
Command is an API that describes command operations
func CreateCommand ¶
CreateCommand creates and returns a new Command
func CreateDownloadCommand ¶
CreateDownloadCommand configures and returns a command used to download a file
func CreateHTTPDownloadCommand ¶
func CreateHTTPDownloadCommand(remoteLocation string, w http.ResponseWriter, progress io.Writer) (Command, error)
CreateHTTPDownloadCommand creates HTTP upload command
func CreateHTTPUploadCommand ¶
func CreateHTTPUploadCommand(remoteLocation string, httpReq *http.Request, progress io.Writer) (Command, error)
CreateHTTPUploadCommand creates HTTP download command
func CreateUploadCommand ¶
CreateUploadCommand configures and returns a command used to upload a file
type Config ¶
type Config struct { // Flags is SCP command line flags Flags Flags // User is a user who runs SCP command User *user.User // AuditLog is AuditLog log AuditLog events.IAuditLog // ProgressWriter is a writer to for printing the progress // (used only on the client for printing the progress) ProgressWriter io.Writer // FileSystem is a file system on which SCP command is ran FileSystem FileSystem // RemoteLocation is the file remote destination RemoteLocation string }
Config describes Command configuration settings
type FileInfo ¶
type FileInfo interface { // IsDir tells if this is a directory IsDir() bool // ReadDir returns information of directory files ReadDir() ([]FileInfo, error) // GetName returns file name GetName() string // GetPath returns file path GetPath() string // GetModePerm returns file permissions GetModePerm() os.FileMode // GetSize returns file size GetSize() int64 }
FileInfo is an API that describes methods that provide file information
type FileSystem ¶
type FileSystem interface { // IsDir tells if given path is a directory IsDir(path string) bool // GetFileInfo returns FileInfo for a given file path GetFileInfo(filePath string) (FileInfo, error) // MkDir creates a directory MkDir(path string, mode int) error // OpenFile opens a file and returns its Reader OpenFile(filePath string) (io.ReadCloser, error) // CreateFile creates a new file CreateFile(filePath string, length uint64) (io.WriteCloser, error) // SetChmod sets file permissions SetChmod(path string, mode int) error }
FileSystem is an API that describes file methods
type Flags ¶
type Flags struct { // Source indicates upload mode Source bool // Sink indicates receive mode Sink bool // Verbose sets a logging mode Verbose bool // Target sets targeted files to be transfered Target []string // Recursive indicates recursive file transfer Recursive bool // RemoteAddr is remote host address RemoteAddr string // LocalAddr is local host address LocalAddr string }
Flags describes SCP command line flags