rclone: github.com/rclone/rclone/fs/rc Index | Files | Directories

package rc

import "github.com/rclone/rclone/fs/rc"

Package rc implements a remote control server and registry for rclone

To register your internal calls, call rc.Add(path, function). Your function should take ane return a Param. It can also return an error. Use rc.NewError to wrap an existing error along with an http response type if another response other than 500 internal error is required on error.

Index

Package Files

cache.go config.go internal.go params.go rc.go registry.go

Variables

var Calls = NewRegistry()

Calls is the global registry of Call objects

var DefaultOpt = Options{
    HTTPOptions:       httplib.DefaultOpt,
    Enabled:           false,
    JobExpireDuration: 60 * time.Second,
    JobExpireInterval: 10 * time.Second,
}

DefaultOpt is the default values used for Options

func Add Uses

func Add(call Call)

Add a function to the global registry

func AddOption Uses

func AddOption(name string, option interface{})

AddOption adds an option set

func AddOptionReload Uses

func AddOptionReload(name string, option interface{}, reload func() error)

AddOptionReload adds an option set with a reload function to be called when options are changed

func GetFs Uses

func GetFs(in Params) (f fs.Fs, err error)

GetFs gets a fs.Fs named "fs" either from the cache or creates it afresh

func GetFsAndRemote Uses

func GetFsAndRemote(in Params) (f fs.Fs, remote string, err error)

GetFsAndRemote gets the `fs` parameter from in, makes a remote or fetches it from the cache then gets the `remote` parameter from in too.

func GetFsAndRemoteNamed Uses

func GetFsAndRemoteNamed(in Params, fsName, remoteName string) (f fs.Fs, remote string, err error)

GetFsAndRemoteNamed gets the fsName parameter from in, makes a remote or fetches it from the cache then gets the remoteName parameter from in too.

func GetFsNamed Uses

func GetFsNamed(in Params, fsName string) (f fs.Fs, err error)

GetFsNamed gets a fs.Fs named fsName either from the cache or creates it afresh

func IsErrParamInvalid Uses

func IsErrParamInvalid(err error) bool

IsErrParamInvalid returns whether err is ErrParamInvalid

func IsErrParamNotFound Uses

func IsErrParamNotFound(err error) bool

IsErrParamNotFound returns whether err is ErrParamNotFound

func NotErrParamNotFound Uses

func NotErrParamNotFound(err error) bool

NotErrParamNotFound returns true if err != nil and !IsErrParamNotFound(err)

This is for checking error returns of the Get* functions to ignore error not found returns and take the default value.

func Reshape Uses

func Reshape(out interface{}, in interface{}) error

Reshape reshapes one blob of data into another via json serialization

out should be a pointer type

This isn't a very efficient way of dealing with this!

func WriteJSON Uses

func WriteJSON(w io.Writer, out Params) error

WriteJSON writes JSON in out to w

type Call Uses

type Call struct {
    Path         string // path to activate this RC
    Fn           Func   `json:"-"` // function to call
    Title        string // help for the function
    AuthRequired bool   // if set then this call requires authorisation to be set
    Help         string // multi-line markdown formatted help
}

Call defines info about a remote control function and is used in the Add function to create new entry points.

type ErrParamInvalid Uses

type ErrParamInvalid struct {
    // contains filtered or unexported fields
}

ErrParamInvalid - this is returned from the Get* functions if the parameter is invalid.

Returning an error of this type from an rc.Func will cause the http method to return http.StatusBadRequest

type ErrParamNotFound Uses

type ErrParamNotFound string

ErrParamNotFound - this is returned from the Get* functions if the parameter isn't found along with a zero value of the requested item.

Returning an error of this type from an rc.Func will cause the http method to return http.StatusBadRequest

func (ErrParamNotFound) Error Uses

func (e ErrParamNotFound) Error() string

Error turns this error into a string

type Func Uses

type Func func(ctx context.Context, in Params) (out Params, err error)

Func defines a type for a remote control function

type Options Uses

type Options struct {
    HTTPOptions              httplib.Options
    Enabled                  bool   // set to enable the server
    Serve                    bool   // set to serve files from remotes
    Files                    string // set to enable serving files locally
    NoAuth                   bool   // set to disable auth checks on AuthRequired methods
    WebUI                    bool   // set to launch the web ui
    WebGUIUpdate             bool   // set to download new update
    WebGUIFetchURL           string // set the default url for fetching webgui
    AccessControlAllowOrigin string // set the access control for CORS configuration
    JobExpireDuration        time.Duration
    JobExpireInterval        time.Duration
}

Options contains options for the remote control server

type Params Uses

type Params map[string]interface{}

Params is the input and output type for the Func

func (Params) Get Uses

func (p Params) Get(key string) (interface{}, error)

Get gets a parameter from the input

If the parameter isn't found then error will be of type ErrParamNotFound and the returned value will be nil.

func (Params) GetBool Uses

func (p Params) GetBool(key string) (bool, error)

GetBool gets a boolean parameter from the input

If the parameter isn't found then error will be of type ErrParamNotFound and the returned value will be false.

func (Params) GetFloat64 Uses

func (p Params) GetFloat64(key string) (float64, error)

GetFloat64 gets a float64 parameter from the input

If the parameter isn't found then error will be of type ErrParamNotFound and the returned value will be 0.

func (Params) GetInt64 Uses

func (p Params) GetInt64(key string) (int64, error)

GetInt64 gets a int64 parameter from the input

If the parameter isn't found then error will be of type ErrParamNotFound and the returned value will be 0.

func (Params) GetString Uses

func (p Params) GetString(key string) (string, error)

GetString gets a string parameter from the input

If the parameter isn't found then error will be of type ErrParamNotFound and the returned value will be "".

func (Params) GetStruct Uses

func (p Params) GetStruct(key string, out interface{}) error

GetStruct gets a struct from key from the input into the struct pointed to by out. out must be a pointer type.

If the parameter isn't found then error will be of type ErrParamNotFound and out will be unchanged.

type Registry Uses

type Registry struct {
    // contains filtered or unexported fields
}

Registry holds the list of all the registered remote control functions

func NewRegistry Uses

func NewRegistry() *Registry

NewRegistry makes a new registry for remote control functions

func (*Registry) Add Uses

func (r *Registry) Add(call Call)

Add a call to the registry

func (*Registry) Get Uses

func (r *Registry) Get(path string) *Call

Get a Call from a path or nil

func (*Registry) List Uses

func (r *Registry) List() (out []*Call)

List of all calls in alphabetical order

Directories

PathSynopsis
jobs
rcflagsPackage rcflags implements command line flags to set up the remote control
rcserverPackage rcserver implements the HTTP endpoint to serve the remote control

Package rc imports 19 packages (graph) and is imported by 50 packages. Updated 2019-09-21. Refresh now. Tools for package owners.