Documentation ¶
Overview ¶
Copyright (c) 2018 Bram Vandenbogaerde * You may use, distribute or modify this code under the * terms of the Mozilla Public License 2.0, which is distributed * along with the source code.
Simple scp package to copy files over SSH
Index ¶
- type Client
- func (a *Client) Close()
- func (a *Client) Connect() error
- func (a *Client) Copy(r io.Reader, remotePath string, permissions string, size int64) error
- func (a *Client) CopyFile(fileReader io.Reader, remotePath string, permissions string) error
- func (a *Client) CopyFromFile(file os.File, remotePath string, permissions string) error
- func (a *Client) CopyFromRemote(remotePath string) (io.Reader, os.FileMode, error)
- type ClientConfigurer
- func (c *ClientConfigurer) ClientConfig(config *ssh.ClientConfig) *ClientConfigurer
- func (c *ClientConfigurer) Create() Client
- func (c *ClientConfigurer) Host(host string) *ClientConfigurer
- func (c *ClientConfigurer) RemoteBinary(path string) *ClientConfigurer
- func (c *ClientConfigurer) Timeout(timeout time.Duration) *ClientConfigurer
- type Command
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct { // the host to connect to Host string // the client config to use ClientConfig *ssh.ClientConfig // stores the SSH session while the connection is running Session *ssh.Session // stores the SSH connection itself in order to close it after transfer Conn ssh.Conn // the clients waits for the given timeout until given up the connection Timeout time.Duration // the absolute path to the remote SCP binary RemoteBinary string }
func NewClient ¶
func NewClient(host string, config *ssh.ClientConfig) Client
Returns a new scp.Client with provided host and ssh.clientConfig It has a default timeout of one minute.
func NewClientWithTimeout ¶
Returns a new scp.Client with provides host, ssh.ClientConfig and timeout
func (*Client) Connect ¶
Connects to the remote SSH server, returns error if it couldn't establish a session to the SSH server
func (*Client) CopyFile ¶
Copies the contents of an io.Reader to a remote location, the length is determined by reading the io.Reader until EOF if the file length in know in advance please use "Copy" instead
func (*Client) CopyFromFile ¶
Copies the contents of an os.File to a remote location, it will get the length of the file by looking it up from the filesystem
type ClientConfigurer ¶
type ClientConfigurer struct {
// contains filtered or unexported fields
}
A struct containing all the configuration options used by an scp client.
func NewConfigurer ¶
func NewConfigurer(host string, config *ssh.ClientConfig) *ClientConfigurer
Creates a new client configurer. It takes the required parameters: the host and the ssh.ClientConfig and returns a configurer populated with the default values for the optional parameters.
These optional parameters can be set by using the methods provided on the ClientConfigurer struct.
func (*ClientConfigurer) ClientConfig ¶
func (c *ClientConfigurer) ClientConfig(config *ssh.ClientConfig) *ClientConfigurer
Alters the ssh.ClientConfig
func (*ClientConfigurer) Create ¶
func (c *ClientConfigurer) Create() Client
Builds a client with the configuration stored within the ClientConfigurer
func (*ClientConfigurer) Host ¶
func (c *ClientConfigurer) Host(host string) *ClientConfigurer
Alters the host of the client connects to
func (*ClientConfigurer) RemoteBinary ¶
func (c *ClientConfigurer) RemoteBinary(path string) *ClientConfigurer
Sets the path of the location of the remote scp binary Defaults to: /usr/bin/scp
func (*ClientConfigurer) Timeout ¶
func (c *ClientConfigurer) Timeout(timeout time.Duration) *ClientConfigurer
Changes the connection timeout. Defaults to one minute
type Command ¶
Command represents a SCP command sent to or from the remote system
func (*Command) MarshalText ¶
MarshalText implements the TextMarshaler interface
func (*Command) UnmarshalText ¶
UnmarshalText implements the TextUnmarshaler interface