diff --git a/fs_local.go b/fs_local.go index 6caac26..823b0eb 100644 --- a/fs_local.go +++ b/fs_local.go @@ -114,7 +114,7 @@ func (fs LocalFileSystem) ReadDir(ctx context.Context, name string, recursive bo return l, errFromOS(err) } -func (fs LocalFileSystem) Create(ctx context.Context, name string, body io.ReadCloser) error { +func (fs LocalFileSystem) Create(ctx context.Context, name string, body io.ReadCloser, size int64) error { p, err := fs.localPath(name) if err != nil { return err diff --git a/server.go b/server.go index 16f3310..9710013 100644 --- a/server.go +++ b/server.go @@ -17,7 +17,7 @@ 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, body io.ReadCloser) error + Create(ctx context.Context, name string, body io.ReadCloser, size int64) 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) @@ -45,7 +45,7 @@ func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) { // 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 +// denied, etc.) while also providing an (optional) arbitrary error context // (intended for humans). func NewHTTPError(statusCode int, cause error) error { return &internal.HTTPError{Code: statusCode, Err: cause} @@ -194,7 +194,7 @@ func (b *backend) PropPatch(r *http.Request, update *internal.PropertyUpdate) (* } func (b *backend) Put(w http.ResponseWriter, r *http.Request) error { - err := b.FileSystem.Create(r.Context(), r.URL.Path, r.Body) + err := b.FileSystem.Create(r.Context(), r.URL.Path, r.Body, r.ContentLength) if err != nil { return err }