Versions in this module Expand all Collapse all v0 v0.1.1 Aug 31, 2023 Changes in this version + type Options struct + func Configure(remoteRoot, storageRoot string) (*Options, error) + func (o *Options) AllowAnyReadWrite() + func (o *Options) Rroot() string + func (o *Options) Sroot() string + func (o *Options) UseAllowOrigin(f AllowOriginFunc) + func (o *Options) UseAllowedOrigins(origins []string) + func (o *Options) UseAuthentication(a AuthenticateFunc) + func (o *Options) UseErrorHandler(h ErrorHandlerFunc) + func (o *Options) UseMiddleware(m MiddlewareFunc) + type ReadPublicUser struct + func (ReadPublicUser) Permission(name string) Level v0.1.0 Aug 15, 2023 Changes in this version + var ErrBadRequest = errors.New("bad request") + var ErrConflict = errors.New("conflicting document/folder names") + var ErrForbidden = errors.New("insufficient scope") + var ErrInsufficientStorage = errors.New("insufficient storage") + var ErrMethodNotAllowed = errors.New("method not allowed") + var ErrNotExist = errors.New("no such document or folder") + var ErrNotFound = errors.New("resource not found") + var ErrNotImplemented = errors.New("not implemented") + var ErrNotModified = errors.New("not modified") + var ErrPreconditionFailed = errors.New("precondition failed") + var ErrRangeNotSatisfiable = errors.New("request range not satisfiable") + var ErrServerError = errors.New("internal server error") + var ErrTooLarge = errors.New("request entity too large") + var ErrTooManyRequests = errors.New("too many requests") + var ErrUnauthorized = errors.New("missing or invalid bearer token") + var ErrUriTooLong = errors.New("request uri too long") + var StatusCodes = map[error]int + func AddDocument(rname, sname string, fsize int64, mime string) (*node, error) + func AllowAnyReadWrite() + func DeleteDocument(w http.ResponseWriter, r *http.Request) error + func GetDocument(w http.ResponseWriter, r *http.Request) error + func GetFolder(w http.ResponseWriter, r *http.Request) error + func LDGet(ld LDjson, keys ...string) (t T, err error) + func Load(persistFile io.Reader) error + func Migrate(root string) (errs []error) + func Persist(persistFile io.Writer) (err error) + func PutDocument(w http.ResponseWriter, r *http.Request) error + func Register(mux *http.ServeMux) + func RemoveDocument(n *node) + func Reset() + func Retrieve(rname string) (*node, error) + func Rroot() string + func Setup(remoteRoot, storageRoot string) error + func Sroot() string + func UpdateDocument(n *node, mime string, fsize int64) + func UseAllowOrigin(f AllowOriginFunc) + func UseAllowedOrigins(origins []string) + func UseAuthentication(a AuthenticateFunc) + func UseErrorHandler(h ErrorHandlerFunc) + func UseMiddleware(m MiddlewareFunc) + func WriteError(w http.ResponseWriter, err error) error + type AllowOriginFunc func(r *http.Request, origin string) bool + type AuthenticateFunc func(r *http.Request, bearer string) (User, bool) + type ConflictError struct + ConflictPath string + Path string + func (e ConflictError) Error() string + type ETag []byte + func ParseETag(s string) (ETag, error) + func (e ETag) Equal(other ETag) bool + func (e ETag) String() string + type ErrorHandlerFunc func(err error) + type HttpError struct + Cause error + Data LDjson + Desc string + Msg string + URL string + func (e HttpError) Error() string + func (e HttpError) Unwrap() error + type LDjson = map[string]any + type Level string + var LevelNone Level = "" + var LevelRead Level = ":r" + var LevelReadWrite Level = ":rw" + type LoggingResponseWriter struct + Size int + Status int + func NewLoggingResponseWriter(w http.ResponseWriter) *LoggingResponseWriter + func (lrw *LoggingResponseWriter) Write(b []byte) (int, error) + func (lrw *LoggingResponseWriter) WriteHeader(statusCode int) + type MiddlewareFunc func(next http.Handler) http.Handler + type NodeDTO struct + ETag string + IsFolder bool + LastMod *time.Time + Length int64 + Mime string + Name string + ParentRName string + Rname string + Sname string + type ReadOnlyUser struct + func (ReadOnlyUser) Permission(name string) Level + type ReadWriteUser struct + func (ReadWriteUser) Permission(name string) Level + type User interface + Permission func(name string) Level + func UserFromContext(ctx context.Context) (User, bool)