diff --git a/CHANGELOG.md b/CHANGELOG.md index d3fd48bb..b3d4b956 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ - Fixed the text wrapping in the Admin UI listing searchbar ([#1416](https://github.com/pocketbase/pocketbase/issues/1416)). +- Added `filesystem.NewFileFromBytes()` helper ([#1420](https://github.com/pocketbase/pocketbase/pull/1420); thanks @dschissler). + ## v0.10.4 diff --git a/tools/filesystem/file.go b/tools/filesystem/file.go index 64a7012b..912ef882 100644 --- a/tools/filesystem/file.go +++ b/tools/filesystem/file.go @@ -81,7 +81,7 @@ func NewFileFromMultipart(mh *multipart.FileHeader) (*File, error) { var _ FileReader = (*MultipartReader)(nil) -// MultipartReader defines a [multipart.FileHeader] reader. +// MultipartReader defines a FileReader from [multipart.FileHeader]. type MultipartReader struct { Header *multipart.FileHeader } @@ -95,6 +95,7 @@ func (r *MultipartReader) Open() (io.ReadSeekCloser, error) { var _ FileReader = (*PathReader)(nil) +// PathReader defines a FileReader from a local file path. type PathReader struct { Path string } @@ -108,6 +109,7 @@ func (r *PathReader) Open() (io.ReadSeekCloser, error) { var _ FileReader = (*BytesReader)(nil) +// BytesReader defines a FileReader from bytes content. type BytesReader struct { Bytes []byte } @@ -117,11 +119,11 @@ func (r *BytesReader) Open() (io.ReadSeekCloser, error) { return &bytesReadSeekCloser{bytes.NewReader(r.Bytes)}, nil } -// bytesReadSeekCloser implements io.ReadSeekCloser type bytesReadSeekCloser struct { *bytes.Reader } +// Close implements the [io.ReadSeekCloser] interface. func (r *bytesReadSeekCloser) Close() error { return nil } diff --git a/tools/filesystem/file_test.go b/tools/filesystem/file_test.go index 6e59f1bf..15c7dfd2 100644 --- a/tools/filesystem/file_test.go +++ b/tools/filesystem/file_test.go @@ -30,7 +30,7 @@ func TestNewFileFromPath(t *testing.T) { t.Fatalf("Expected nil error, got %v", err) } if f.OriginalName != originalName { - t.Fatalf("Expected originalName %q, got %q", originalName, f.OriginalName) + t.Fatalf("Expected OriginalName %q, got %q", originalName, f.OriginalName) } if match, _ := regexp.Match(normalizedNamePattern, []byte(f.Name)); !match { t.Fatalf("Expected Name to match %v, got %q (%v)", normalizedNamePattern, f.Name, err) @@ -64,7 +64,7 @@ func TestNewFileFromBytes(t *testing.T) { t.Fatalf("Expected Size %v, got %v", 5, f.Size) } if f.OriginalName != originalName { - t.Fatalf("Expected originalName %q, got %q", originalName, f.OriginalName) + t.Fatalf("Expected OriginalName %q, got %q", originalName, f.OriginalName) } if match, _ := regexp.Match(normalizedNamePattern, []byte(f.Name)); !match { t.Fatalf("Expected Name to match %v, got %q (%v)", normalizedNamePattern, f.Name, err)