Documentation ¶
Overview ¶
Package webdav provides a client and server WebDAV filesystem implementation.
WebDAV is defined in RFC 4918.
Index ¶
- func NewHTTPError(statusCode int, cause error) error
- func ServePrincipal(w http.ResponseWriter, r *http.Request, options *ServePrincipalOptions)
- type BackendSuppliedHomeSet
- type Capability
- type Client
- func (c *Client) Copy(ctx context.Context, name, dest string, options *CopyOptions) error
- func (c *Client) Create(ctx context.Context, name string) (io.WriteCloser, error)
- func (c *Client) FindCurrentUserPrincipal(ctx context.Context) (string, error)
- func (c *Client) Mkdir(ctx context.Context, name string) error
- func (c *Client) Move(ctx context.Context, name, dest string, options *MoveOptions) error
- func (c *Client) Open(ctx context.Context, name string) (io.ReadCloser, error)
- func (c *Client) ReadDir(ctx context.Context, name string, recursive bool) ([]FileInfo, error)
- func (c *Client) RemoveAll(ctx context.Context, name string) error
- func (c *Client) Stat(ctx context.Context, name string) (*FileInfo, error)
- type ConditionalMatch
- type CopyOptions
- type FileInfo
- type FileSystem
- type HTTPClient
- type Handler
- type LocalFileSystem
- func (fs LocalFileSystem) Copy(ctx context.Context, src, dst string, options *CopyOptions) (created bool, err error)
- func (fs LocalFileSystem) Create(ctx context.Context, name string) (io.WriteCloser, error)
- func (fs LocalFileSystem) Mkdir(ctx context.Context, name string) error
- func (fs LocalFileSystem) Move(ctx context.Context, src, dst string, options *MoveOptions) (created bool, err error)
- func (fs LocalFileSystem) Open(ctx context.Context, name string) (io.ReadCloser, error)
- func (fs LocalFileSystem) ReadDir(ctx context.Context, name string, recursive bool) ([]FileInfo, error)
- func (fs LocalFileSystem) RemoveAll(ctx context.Context, name string) error
- func (fs LocalFileSystem) Stat(ctx context.Context, name string) (*FileInfo, error)
- type MoveOptions
- type ServePrincipalOptions
- type UserPrincipalBackend
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewHTTPError ¶ added in v0.4.0
NewHTTPError creates a new error that is associated with an HTTP status code and optionally an error that lead to it. Backends can use this functions to return errors that convey some semantics (e.g. 404 not found, 403 access denied, etc) while also providing an (optional) arbitrary error context (intended for humans).
func ServePrincipal ¶ added in v0.4.0
func ServePrincipal(w http.ResponseWriter, r *http.Request, options *ServePrincipalOptions)
ServePrincipal replies to requests for a principal URL.
Types ¶
type BackendSuppliedHomeSet ¶ added in v0.4.0
BackendSuppliedHomeSet represents either a CalDAV calendar-home-set or a CardDAV addressbook-home-set. It should only be created via caldav.NewCalendarHomeSet or carddav.NewAddressbookHomeSet. Only to be used server-side, for listing a user's home sets as determined by the (external) backend.
type Capability ¶ added in v0.4.0
type Capability string
Capability indicates the features that a server supports.
type Client ¶ added in v0.2.0
type Client struct {
// contains filtered or unexported fields
}
Client provides access to a remote WebDAV filesystem.
func NewClient ¶ added in v0.2.0
func NewClient(c HTTPClient, endpoint string) (*Client, error)
NewClient creates a new WebDAV client.
If the HTTPClient is nil, http.DefaultClient is used.
To use HTTP basic authentication, HTTPClientWithBasicAuth can be used.
func (*Client) Copy ¶ added in v0.5.0
Copy copies a file.
By default, if the file is a directory, all descendants are recursively copied as well.
func (*Client) FindCurrentUserPrincipal ¶ added in v0.2.0
FindCurrentUserPrincipal finds the current user's principal path.
type ConditionalMatch ¶ added in v0.4.0
type ConditionalMatch string
ConditionalMatch represents the value of a conditional header according to RFC 2068 section 14.25 and RFC 2068 section 14.26 The (optional) value can either be a wildcard or an ETag.
func (ConditionalMatch) ETag ¶ added in v0.4.0
func (val ConditionalMatch) ETag() (string, error)
func (ConditionalMatch) IsSet ¶ added in v0.4.0
func (val ConditionalMatch) IsSet() bool
func (ConditionalMatch) IsWildcard ¶ added in v0.4.0
func (val ConditionalMatch) IsWildcard() bool
type CopyOptions ¶ added in v0.5.0
type FileInfo ¶ added in v0.2.0
type FileInfo struct { Path string Size int64 ModTime time.Time IsDir bool MIMEType string ETag string }
FileInfo holds information about a WebDAV file.
type FileSystem ¶
type FileSystem interface { Open(ctx context.Context, name string) (io.ReadCloser, error) Stat(ctx context.Context, name string) (*FileInfo, error) ReadDir(ctx context.Context, name string, recursive bool) ([]FileInfo, error) Create(ctx context.Context, name string) (io.WriteCloser, error) RemoveAll(ctx context.Context, name string) error Mkdir(ctx context.Context, name string) error Copy(ctx context.Context, name, dest string, options *CopyOptions) (created bool, err error) Move(ctx context.Context, name, dest string, options *MoveOptions) (created bool, err error) }
FileSystem is a WebDAV server backend.
type HTTPClient ¶ added in v0.3.0
HTTPClient performs HTTP requests. It's implemented by *http.Client.
func HTTPClientWithBasicAuth ¶ added in v0.3.0
func HTTPClientWithBasicAuth(c HTTPClient, username, password string) HTTPClient
HTTPClientWithBasicAuth returns an HTTP client that adds basic authentication to all outgoing requests. If c is nil, http.DefaultClient is used.
type Handler ¶
type Handler struct {
FileSystem FileSystem
}
Handler handles WebDAV HTTP requests. It can be used to create a WebDAV server.
type LocalFileSystem ¶ added in v0.2.0
type LocalFileSystem string
LocalFileSystem implements FileSystem for a local directory.
func (LocalFileSystem) Copy ¶ added in v0.2.0
func (fs LocalFileSystem) Copy(ctx context.Context, src, dst string, options *CopyOptions) (created bool, err error)
func (LocalFileSystem) Create ¶ added in v0.2.0
func (fs LocalFileSystem) Create(ctx context.Context, name string) (io.WriteCloser, error)
func (LocalFileSystem) Mkdir ¶ added in v0.2.0
func (fs LocalFileSystem) Mkdir(ctx context.Context, name string) error
func (LocalFileSystem) Move ¶ added in v0.5.0
func (fs LocalFileSystem) Move(ctx context.Context, src, dst string, options *MoveOptions) (created bool, err error)
func (LocalFileSystem) Open ¶ added in v0.2.0
func (fs LocalFileSystem) Open(ctx context.Context, name string) (io.ReadCloser, error)
type MoveOptions ¶ added in v0.5.0
type MoveOptions struct {
NoOverwrite bool
}
type ServePrincipalOptions ¶ added in v0.4.0
type ServePrincipalOptions struct { CurrentUserPrincipalPath string HomeSets []BackendSuppliedHomeSet Capabilities []Capability }
ServePrincipalOptions holds options for ServePrincipal.
Directories ¶
Path | Synopsis |
---|---|
Package caldav provides a client and server CalDAV implementation.
|
Package caldav provides a client and server CalDAV implementation. |
Package carddav provides a client and server CardDAV implementation.
|
Package carddav provides a client and server CardDAV implementation. |
cmd
|
|
Package internal provides low-level helpers for WebDAV clients and servers.
|
Package internal provides low-level helpers for WebDAV clients and servers. |