diff --git a/backend/posix/posix.go b/backend/posix/posix.go index 91f7782..02d6867 100644 --- a/backend/posix/posix.go +++ b/backend/posix/posix.go @@ -989,6 +989,11 @@ func (p *Posix) PutObject(ctx context.Context, po *s3.PutObjectInput) (string, e } // object is file + d, err := os.Stat(name) + if err == nil && d.IsDir() { + return "", s3err.GetAPIError(s3err.ErrExistingObjectIsDirectory) + } + f, err := openTmpFile(filepath.Join(*po.Bucket, metaTmpDir), *po.Bucket, *po.Key, po.ContentLength) if err != nil {