Documentation
¶
Overview ¶
Package sftp implements repository storage in a directory on a remote server via the sftp protocol.
Index ¶
- func Join(parts ...string) string
- func NewFactory() location.Factory
- type Config
- type SFTP
- func (r *SFTP) Close() error
- func (r *SFTP) Connections() uint
- func (r *SFTP) Delete(ctx context.Context) error
- func (r *SFTP) HasAtomicReplace() bool
- func (r *SFTP) Hasher() hash.Hash
- func (r *SFTP) IsNotExist(err error) bool
- func (r *SFTP) IsPermanentError(err error) bool
- func (r *SFTP) Join(p ...string) string
- func (r *SFTP) List(ctx context.Context, t backend.FileType, fn func(backend.FileInfo) error) error
- func (r *SFTP) Load(ctx context.Context, h backend.Handle, length int, offset int64, ...) error
- func (r *SFTP) ReadDir(_ context.Context, dir string) ([]os.FileInfo, error)
- func (r *SFTP) Remove(_ context.Context, h backend.Handle) error
- func (r *SFTP) Save(_ context.Context, h backend.Handle, rd backend.RewindReader) error
- func (r *SFTP) Stat(_ context.Context, h backend.Handle) (backend.FileInfo, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Join ¶
Join joins the given paths and cleans them afterwards. This always uses forward slashes, which is required by sftp.
func NewFactory ¶
Types ¶
type Config ¶
type Config struct {
User, Host, Port, Path string
Layout string `option:"layout" help:"use this backend directory layout (default: auto-detect) (deprecated)"`
Command string `option:"command" help:"specify command to create sftp connection"`
Args string `option:"args" help:"specify arguments for ssh"`
Connections uint `option:"connections" help:"set a limit for the number of concurrent connections (default: 5)"`
}
Config collects all information required to connect to an sftp server.
func NewConfig ¶
func NewConfig() Config
NewConfig returns a new config with default options applied.
func ParseConfig ¶
ParseConfig parses the string s and extracts the sftp config. The supported configuration formats are sftp://user@host[:port]/directory and sftp:user@host:directory. The directory will be path Cleaned and can be an absolute path if it starts with a '/' (e.g. sftp://user@host//absolute and sftp:user@host:/absolute).
type SFTP ¶
SFTP is a backend in a directory accessed via SFTP.
func Create ¶
Create creates an sftp backend as described by the config by running "ssh" with the appropriate arguments (or cfg.Command, if set).
func Open ¶
Open opens an sftp backend as described by the config by running "ssh" with the appropriate arguments (or cfg.Command, if set).
func (*SFTP) Connections ¶
func (*SFTP) HasAtomicReplace ¶
HasAtomicReplace returns whether Save() can atomically replace files
func (*SFTP) Hasher ¶
Hasher may return a hash function for calculating a content hash for the backend
func (*SFTP) IsNotExist ¶
IsNotExist returns true if the error is caused by a not existing file.
func (*SFTP) IsPermanentError ¶
func (*SFTP) List ¶
List runs fn for each file in the backend which has the type t. When an error occurs (or fn returns an error), List stops and returns it.
func (*SFTP) Load ¶
func (r *SFTP) Load(ctx context.Context, h backend.Handle, length int, offset int64, fn func(rd io.Reader) error) error
Load runs fn with a reader that yields the contents of the file at h at the given offset.