file

package
v0.2.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 8, 2026 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Overview

Package file is a generated GoMock package.

Index

Constants

View Source
const (
	// DefaultFileMode is the standard file permission (0644 = rw-r--r--).
	DefaultFileMode os.FileMode = 0644

	// DefaultDirMode is the standard directory permission (0755 = rwxr-xr-x).
	DefaultDirMode os.FileMode = 0755
)

File permission constants.

View Source
const (
	StatusSuccess   = "SUCCESS"
	StatusError     = "ERROR"
	MsgWriterClosed = "Writer closed successfully"
	MsgReaderClosed = "Reader closed successfully"
)
View Source
const (
	OpConnect   = "CONNECT"
	OpCreate    = "CREATE"
	OpOpen      = "OPEN"
	OpOpenFile  = "OPEN_FILE"
	OpRemove    = "REMOVE"
	OpRename    = "RENAME"
	OpMkdir     = "MKDIR"
	OpMkdirAll  = "MKDIR_ALL"
	OpRemoveAll = "REMOVE_ALL"
	OpReadDir   = "READ_DIR"
	OpStat      = "STAT"
	OpChDir     = "CHDIR"
	OpGetwd     = "GETWD"
	OpRead      = "READ"
	OpReadAt    = "READ_AT"
	OpWrite     = "WRITE"
	OpWriteAt   = "WRITE_AT"
	OpSeek      = "SEEK"
	OpClose     = "CLOSE"
)

Operation constants for standardization across all file providers.

View Source
const (
	// AppFileStats is the single metric name for all file operations across providers.
	AppFileStats = "app_file_stats"
)

Variables

View Source
var (
	ErrOutOfRange   = errors.New("out of range")
	ErrFileNotFound = os.ErrNotExist
)

Functions

func DefaultHistogramBuckets

func DefaultHistogramBuckets() []float64

DefaultHistogramBuckets returns the standard bucket sizes for file operations.

func GenerateCopyName

func GenerateCopyName(original string, count int) string

GenerateCopyName creates a new file name with " copy N" suffix. Example: "file.txt" -> "file copy 1.txt".

func IsAlreadyExistsError

func IsAlreadyExistsError(err error) bool

IsAlreadyExistsError checks if an error indicates an object already exists. Handles provider-specific error codes (e.g., GCS 409/412, S3 ResourceExists).

func ObserveOperation

func ObserveOperation(params *OperationObservability)

ObserveOperation is a helper function that handles both logging and metrics recording.

func ValidateSeekOffset

func ValidateSeekOffset(whence int, offset, currentPos, length int64) (int64, error)

ValidateSeekOffset validates and calculates the new offset for Seek operations.

Types

type CommonFile

type CommonFile struct {
	// contains filtered or unexported fields
}

CommonFile implements FileInfo for all providers, eliminating redundant metadata getters. Providers instantiate this struct when returning file metadata.

func NewCommonFile

func NewCommonFile(
	provider StorageProvider,
	name string,
	info *ObjectInfo,
	reader io.ReadCloser,
	logger datasource.Logger,
	metrics StorageMetrics,
	location string,
) *CommonFile

NewCommonFile creates a new file instance for reading.

func NewCommonFileWriter

func NewCommonFileWriter(
	provider StorageProvider,
	name string,
	writer io.WriteCloser,
	logger datasource.Logger,
	metrics StorageMetrics,
	location string,
) *CommonFile

NewCommonFileWriter creates a new file instance for writing.

func (*CommonFile) Close

func (f *CommonFile) Close() error

Close implements io.Closer.

func (*CommonFile) IsDir

func (f *CommonFile) IsDir() bool

IsDir returns true if the object is a directory. Checks both explicit isDir flag and content type for compatibility.

func (*CommonFile) ModTime

func (f *CommonFile) ModTime() time.Time

ModTime returns the last modification time.

func (*CommonFile) Mode

func (f *CommonFile) Mode() os.FileMode

Mode returns the file mode bits.

func (*CommonFile) Name

func (f *CommonFile) Name() string

Name returns the base name of the file.

func (*CommonFile) Read

func (f *CommonFile) Read(p []byte) (int, error)

Read implements io.Reader.

func (*CommonFile) ReadAll

func (f *CommonFile) ReadAll() (RowReader, error)

ReadAll returns a reader for JSON/CSV files.

func (*CommonFile) ReadAt

func (f *CommonFile) ReadAt(p []byte, off int64) (int, error)

ReadAt implements io.ReaderAt.

func (*CommonFile) Seek

func (f *CommonFile) Seek(offset int64, whence int) (int64, error)

Seek implements io.Seeker.

func (*CommonFile) Size

func (f *CommonFile) Size() int64

Size returns the file size in bytes. Returns 0 for directories.

func (*CommonFile) Sys

func (*CommonFile) Sys() any

Sys returns nil (no underlying system-specific data for cloud storage).

func (*CommonFile) Write

func (f *CommonFile) Write(p []byte) (int, error)

Write implements io.Writer.

func (*CommonFile) WriteAt

func (f *CommonFile) WriteAt(p []byte, off int64) (int, error)

WriteAt writes len(p) bytes from p to the file at offset off (supports local filesystem only).

type CommonFileSystem

type CommonFileSystem struct {
	Provider StorageProvider   // Underlying storage implementation
	Location string            // Bucket name or connection identifier (e.g., "my-bucket", "ftp://host")
	Logger   datasource.Logger // Logger for operation tracking
	Metrics  StorageMetrics    // Metrics for observability

	ProviderName string // Provider name for observability (e.g., "Azure", "GCS", "S3")
	// contains filtered or unexported fields
}

CommonFileSystem provides shared implementations of FileSystem operations. Providers (GCS, S3, FTP, SFTP) embed this struct to inherit common directory operations, metadata handling, and observability patterns.

Providers override only storage-specific methods like Create, Open, Remove, Rename.

Note: This works with StorageProvider interface for cloud operations. For reading JSON/CSV files from cloud storage, providers should use:

  • file.NewTextReader(reader) for text/CSV files
  • file.NewJSONReader(reader) for JSON files

These are separate from the local filesystem's ReadAll() implementation.

func (*CommonFileSystem) ChDir

func (c *CommonFileSystem) ChDir(_ string) error

ChDir is not supported for cloud storage (no concept of "current directory").

func (*CommonFileSystem) Connect

func (c *CommonFileSystem) Connect(ctx context.Context) error

Connect calls the provider's Connect and performs common bookkeeping (metrics / logs / observe).

func (*CommonFileSystem) Create

func (c *CommonFileSystem) Create(name string) (File, error)

Create creates a new file for writing.

func (*CommonFileSystem) Getwd

func (c *CommonFileSystem) Getwd() (string, error)

Getwd returns the configured location (bucket name or connection identifier).

func (*CommonFileSystem) IsConnected

func (c *CommonFileSystem) IsConnected() bool

func (*CommonFileSystem) IsRetryDisabled

func (c *CommonFileSystem) IsRetryDisabled() bool

IsRetryDisabled returns true if background retry is disabled.

func (*CommonFileSystem) Mkdir

func (c *CommonFileSystem) Mkdir(name string, _ os.FileMode) error

Mkdir creates a directory in cloud storage by creating a zero-byte object with "/" suffix. This follows cloud storage conventions where directories are represented as special markers.

func (*CommonFileSystem) MkdirAll

func (c *CommonFileSystem) MkdirAll(dirPath string, perm os.FileMode) error

MkdirAll creates nested directories by recursively calling Mkdir for each path component. Example: "a/b/c" creates "a/", "a/b/", and "a/b/c/". MkdirAll creates nested directories by recursively calling Mkdir for each path component.

func (*CommonFileSystem) Observe

func (c *CommonFileSystem) Observe(operation string, startTime time.Time, status, message *string)

Observe is a helper method to centralize observability for all operations.

func (*CommonFileSystem) Open

func (c *CommonFileSystem) Open(name string) (File, error)

Open opens a file for reading.

func (*CommonFileSystem) OpenFile

func (c *CommonFileSystem) OpenFile(name string, flag int, perm os.FileMode) (File, error)

OpenFile opens a file with the specified flags and permissions.

func (*CommonFileSystem) ReadDir

func (c *CommonFileSystem) ReadDir(dir string) ([]FileInfo, error)

ReadDir lists the contents of a directory, returning both subdirectories (prefixes) and files (objects).

func (*CommonFileSystem) Remove

func (c *CommonFileSystem) Remove(name string) error

Remove deletes a file.

func (*CommonFileSystem) RemoveAll

func (c *CommonFileSystem) RemoveAll(dirPath string) error

RemoveAll deletes a directory and all its contents by listing all objects with the prefix and deleting them individually.

func (*CommonFileSystem) Rename

func (c *CommonFileSystem) Rename(oldname, newname string) error

Rename renames a file (copy + delete).

func (*CommonFileSystem) SetConnected

func (c *CommonFileSystem) SetConnected(connected bool)

SetConnected manually sets the connected state (for testing).

func (*CommonFileSystem) SetDisableRetry

func (c *CommonFileSystem) SetDisableRetry(disable bool)

SetDisableRetry enables or disables background retry behavior.

func (*CommonFileSystem) Stat

func (c *CommonFileSystem) Stat(name string) (FileInfo, error)

Stat returns file/directory metadata by querying the storage provider.

func (*CommonFileSystem) UseLogger

func (c *CommonFileSystem) UseLogger(logger any)

UseLogger sets the logger for the CommonFileSystem.

func (*CommonFileSystem) UseMetrics

func (c *CommonFileSystem) UseMetrics(metrics any)

UseMetrics sets the metrics interface for the CommonFileSystem.

type File

type File interface {
	io.Closer
	io.Reader
	io.ReaderAt
	io.Seeker
	io.Writer
	io.WriterAt

	ReadAll() (RowReader, error)

	Name() string
	Size() int64
	ModTime() time.Time
	IsDir() bool
	Mode() os.FileMode
	Sys() any
}

File represents a file in the filesystem.

type FileInfo

type FileInfo interface {
	Name() string       // base name of the file
	Size() int64        // length in bytes for regular files; system-dependent for others
	ModTime() time.Time // modification time
	Mode() os.FileMode  // file mode bits
	IsDir() bool        // abbreviation for Mode().IsDir()
}

FileInfo : Any simulated or real file should implement this interface.

type FileSystem

type FileSystem interface {
	// Create creates a file in the filesystem, returning the file and an
	// error, if any happens.
	Create(name string) (File, error)

	// TODO - Lets make bucket constant for MkdirAll as well, we might create buckets from migrations
	// Mkdir creates a directory in the filesystem, return an error if any
	// happens.
	Mkdir(name string, perm os.FileMode) error

	// MkdirAll creates a directory path and all parents that does not exist
	// yet.
	MkdirAll(path string, perm os.FileMode) error

	// Open opens a file, returning it or an error, if any happens.
	Open(name string) (File, error)

	// OpenFile opens a file using the given flags and the given mode.
	OpenFile(name string, flag int, perm os.FileMode) (File, error)

	// Remove removes a file identified by name, returning an error, if any
	// happens.
	Remove(name string) error

	// RemoveAll removes a directory path and any children it contains. It
	// does not fail if the path does not exist (return nil).
	RemoveAll(path string) error

	// Rename renames a file.
	Rename(oldname, newname string) error

	// ReadDir returns a list of files/directories present in the directory.
	ReadDir(dir string) ([]FileInfo, error)

	// Stat returns the file/directory information in the directory.
	Stat(name string) (FileInfo, error)

	// ChDir changes the current directory.
	ChDir(dirname string) error

	// Getwd returns the path of the current directory.
	Getwd() (string, error)
}

FileSystem : Any simulated or real filesystem should implement this interface.

func New

func New(logger datasource.Logger) FileSystem

New initializes local filesystem with logger (backward compatible wrapper).

type FileSystemProvider

type FileSystemProvider interface {
	FileSystem

	// UseLogger sets the logger for the FileSystem client.
	UseLogger(logger any)

	// UseMetrics sets the metrics for the FileSystem client.
	UseMetrics(metrics any)

	// Connect establishes a connection to FileSystem and registers metrics using the provided configuration when the client was Created.
	Connect()
}

FileSystemProvider : Any simulated or real filesystem provider should implement this interface.

func NewLocalFileSystem

func NewLocalFileSystem(logger datasource.Logger) FileSystemProvider

NewLocalFileSystem creates a FileSystemProvider for local filesystem operations.

type MockFile

type MockFile struct {
	// contains filtered or unexported fields
}

MockFile is a mock of File interface.

func NewMockFile

func NewMockFile(ctrl *gomock.Controller) *MockFile

NewMockFile creates a new mock instance.

func (*MockFile) Close

func (m *MockFile) Close() error

Close mocks base method.

func (*MockFile) EXPECT

func (m *MockFile) EXPECT() *MockFileMockRecorder

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockFile) IsDir

func (m *MockFile) IsDir() bool

IsDir mocks base method.

func (*MockFile) ModTime

func (m *MockFile) ModTime() time.Time

ModTime mocks base method.

func (*MockFile) Mode

func (m *MockFile) Mode() os.FileMode

Mode mocks base method.

func (*MockFile) Name

func (m *MockFile) Name() string

Name mocks base method.

func (*MockFile) Read

func (m *MockFile) Read(p []byte) (int, error)

Read mocks base method.

func (*MockFile) ReadAll

func (m *MockFile) ReadAll() (RowReader, error)

ReadAll mocks base method.

func (*MockFile) ReadAt

func (m *MockFile) ReadAt(p []byte, off int64) (int, error)

ReadAt mocks base method.

func (*MockFile) Seek

func (m *MockFile) Seek(offset int64, whence int) (int64, error)

Seek mocks base method.

func (*MockFile) Size

func (m *MockFile) Size() int64

Size mocks base method.

func (*MockFile) Sys

func (m *MockFile) Sys() any

Sys mocks base method.

func (*MockFile) Write

func (m *MockFile) Write(p []byte) (int, error)

Write mocks base method.

func (*MockFile) WriteAt

func (m *MockFile) WriteAt(p []byte, off int64) (int, error)

WriteAt mocks base method.

type MockFileInfo

type MockFileInfo struct {
	// contains filtered or unexported fields
}

MockFileInfo is a mock of FileInfo interface.

func NewMockFileInfo

func NewMockFileInfo(ctrl *gomock.Controller) *MockFileInfo

NewMockFileInfo creates a new mock instance.

func (*MockFileInfo) EXPECT

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockFileInfo) IsDir

func (m *MockFileInfo) IsDir() bool

IsDir mocks base method.

func (*MockFileInfo) ModTime

func (m *MockFileInfo) ModTime() time.Time

ModTime mocks base method.

func (*MockFileInfo) Mode

func (m *MockFileInfo) Mode() os.FileMode

Mode mocks base method.

func (*MockFileInfo) Name

func (m *MockFileInfo) Name() string

Name mocks base method.

func (*MockFileInfo) Size

func (m *MockFileInfo) Size() int64

Size mocks base method.

type MockFileInfoMockRecorder

type MockFileInfoMockRecorder struct {
	// contains filtered or unexported fields
}

MockFileInfoMockRecorder is the mock recorder for MockFileInfo.

func (*MockFileInfoMockRecorder) IsDir

func (mr *MockFileInfoMockRecorder) IsDir() *gomock.Call

IsDir indicates an expected call of IsDir.

func (*MockFileInfoMockRecorder) ModTime

func (mr *MockFileInfoMockRecorder) ModTime() *gomock.Call

ModTime indicates an expected call of ModTime.

func (*MockFileInfoMockRecorder) Mode

func (mr *MockFileInfoMockRecorder) Mode() *gomock.Call

Mode indicates an expected call of Mode.

func (*MockFileInfoMockRecorder) Name

func (mr *MockFileInfoMockRecorder) Name() *gomock.Call

Name indicates an expected call of Name.

func (*MockFileInfoMockRecorder) Size

func (mr *MockFileInfoMockRecorder) Size() *gomock.Call

Size indicates an expected call of Size.

type MockFileMockRecorder

type MockFileMockRecorder struct {
	// contains filtered or unexported fields
}

MockFileMockRecorder is the mock recorder for MockFile.

func (*MockFileMockRecorder) Close

func (mr *MockFileMockRecorder) Close() *gomock.Call

Close indicates an expected call of Close.

func (*MockFileMockRecorder) IsDir

func (mr *MockFileMockRecorder) IsDir() *gomock.Call

IsDir indicates an expected call of IsDir.

func (*MockFileMockRecorder) ModTime

func (mr *MockFileMockRecorder) ModTime() *gomock.Call

ModTime indicates an expected call of ModTime.

func (*MockFileMockRecorder) Mode

func (mr *MockFileMockRecorder) Mode() *gomock.Call

Mode indicates an expected call of Mode.

func (*MockFileMockRecorder) Name

func (mr *MockFileMockRecorder) Name() *gomock.Call

Name indicates an expected call of Name.

func (*MockFileMockRecorder) Read

func (mr *MockFileMockRecorder) Read(p any) *gomock.Call

Read indicates an expected call of Read.

func (*MockFileMockRecorder) ReadAll

func (mr *MockFileMockRecorder) ReadAll() *gomock.Call

ReadAll indicates an expected call of ReadAll.

func (*MockFileMockRecorder) ReadAt

func (mr *MockFileMockRecorder) ReadAt(p, off any) *gomock.Call

ReadAt indicates an expected call of ReadAt.

func (*MockFileMockRecorder) Seek

func (mr *MockFileMockRecorder) Seek(offset, whence any) *gomock.Call

Seek indicates an expected call of Seek.

func (*MockFileMockRecorder) Size

func (mr *MockFileMockRecorder) Size() *gomock.Call

Size indicates an expected call of Size.

func (*MockFileMockRecorder) Sys

func (mr *MockFileMockRecorder) Sys() *gomock.Call

Sys indicates an expected call of Sys.

func (*MockFileMockRecorder) Write

func (mr *MockFileMockRecorder) Write(p any) *gomock.Call

Write indicates an expected call of Write.

func (*MockFileMockRecorder) WriteAt

func (mr *MockFileMockRecorder) WriteAt(p, off any) *gomock.Call

WriteAt indicates an expected call of WriteAt.

type MockFileSystem

type MockFileSystem struct {
	// contains filtered or unexported fields
}

MockFileSystem is a mock of FileSystem interface.

func NewMockFileSystem

func NewMockFileSystem(ctrl *gomock.Controller) *MockFileSystem

NewMockFileSystem creates a new mock instance.

func (*MockFileSystem) ChDir

func (m *MockFileSystem) ChDir(dirname string) error

ChDir mocks base method.

func (*MockFileSystem) Create

func (m *MockFileSystem) Create(name string) (File, error)

Create mocks base method.

func (*MockFileSystem) EXPECT

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockFileSystem) Getwd

func (m *MockFileSystem) Getwd() (string, error)

Getwd mocks base method.

func (*MockFileSystem) Mkdir

func (m *MockFileSystem) Mkdir(name string, perm os.FileMode) error

Mkdir mocks base method.

func (*MockFileSystem) MkdirAll

func (m *MockFileSystem) MkdirAll(path string, perm os.FileMode) error

MkdirAll mocks base method.

func (*MockFileSystem) Open

func (m *MockFileSystem) Open(name string) (File, error)

Open mocks base method.

func (*MockFileSystem) OpenFile

func (m *MockFileSystem) OpenFile(name string, flag int, perm os.FileMode) (File, error)

OpenFile mocks base method.

func (*MockFileSystem) ReadDir

func (m *MockFileSystem) ReadDir(dir string) ([]FileInfo, error)

ReadDir mocks base method.

func (*MockFileSystem) Remove

func (m *MockFileSystem) Remove(name string) error

Remove mocks base method.

func (*MockFileSystem) RemoveAll

func (m *MockFileSystem) RemoveAll(path string) error

RemoveAll mocks base method.

func (*MockFileSystem) Rename

func (m *MockFileSystem) Rename(oldname, newname string) error

Rename mocks base method.

func (*MockFileSystem) Stat

func (m *MockFileSystem) Stat(name string) (FileInfo, error)

Stat mocks base method.

type MockFileSystemMockRecorder

type MockFileSystemMockRecorder struct {
	// contains filtered or unexported fields
}

MockFileSystemMockRecorder is the mock recorder for MockFileSystem.

func (*MockFileSystemMockRecorder) ChDir

func (mr *MockFileSystemMockRecorder) ChDir(dirname any) *gomock.Call

ChDir indicates an expected call of ChDir.

func (*MockFileSystemMockRecorder) Create

func (mr *MockFileSystemMockRecorder) Create(name any) *gomock.Call

Create indicates an expected call of Create.

func (*MockFileSystemMockRecorder) Getwd

func (mr *MockFileSystemMockRecorder) Getwd() *gomock.Call

Getwd indicates an expected call of Getwd.

func (*MockFileSystemMockRecorder) Mkdir

func (mr *MockFileSystemMockRecorder) Mkdir(name, perm any) *gomock.Call

Mkdir indicates an expected call of Mkdir.

func (*MockFileSystemMockRecorder) MkdirAll

func (mr *MockFileSystemMockRecorder) MkdirAll(path, perm any) *gomock.Call

MkdirAll indicates an expected call of MkdirAll.

func (*MockFileSystemMockRecorder) Open

func (mr *MockFileSystemMockRecorder) Open(name any) *gomock.Call

Open indicates an expected call of Open.

func (*MockFileSystemMockRecorder) OpenFile

func (mr *MockFileSystemMockRecorder) OpenFile(name, flag, perm any) *gomock.Call

OpenFile indicates an expected call of OpenFile.

func (*MockFileSystemMockRecorder) ReadDir

func (mr *MockFileSystemMockRecorder) ReadDir(dir any) *gomock.Call

ReadDir indicates an expected call of ReadDir.

func (*MockFileSystemMockRecorder) Remove

func (mr *MockFileSystemMockRecorder) Remove(name any) *gomock.Call

Remove indicates an expected call of Remove.

func (*MockFileSystemMockRecorder) RemoveAll

func (mr *MockFileSystemMockRecorder) RemoveAll(path any) *gomock.Call

RemoveAll indicates an expected call of RemoveAll.

func (*MockFileSystemMockRecorder) Rename

func (mr *MockFileSystemMockRecorder) Rename(oldname, newname any) *gomock.Call

Rename indicates an expected call of Rename.

func (*MockFileSystemMockRecorder) Stat

func (mr *MockFileSystemMockRecorder) Stat(name any) *gomock.Call

Stat indicates an expected call of Stat.

type MockFileSystemProvider

type MockFileSystemProvider struct {
	// contains filtered or unexported fields
}

MockFileSystemProvider is a mock of FileSystemProvider interface.

func NewMockFileSystemProvider

func NewMockFileSystemProvider(ctrl *gomock.Controller) *MockFileSystemProvider

NewMockFileSystemProvider creates a new mock instance.

func (*MockFileSystemProvider) ChDir

func (m *MockFileSystemProvider) ChDir(dirname string) error

ChDir mocks base method.

func (*MockFileSystemProvider) Connect

func (m *MockFileSystemProvider) Connect()

Connect mocks base method.

func (*MockFileSystemProvider) Create

func (m *MockFileSystemProvider) Create(name string) (File, error)

Create mocks base method.

func (*MockFileSystemProvider) EXPECT

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockFileSystemProvider) Getwd

func (m *MockFileSystemProvider) Getwd() (string, error)

Getwd mocks base method.

func (*MockFileSystemProvider) Mkdir

func (m *MockFileSystemProvider) Mkdir(name string, perm os.FileMode) error

Mkdir mocks base method.

func (*MockFileSystemProvider) MkdirAll

func (m *MockFileSystemProvider) MkdirAll(path string, perm os.FileMode) error

MkdirAll mocks base method.

func (*MockFileSystemProvider) Open

func (m *MockFileSystemProvider) Open(name string) (File, error)

Open mocks base method.

func (*MockFileSystemProvider) OpenFile

func (m *MockFileSystemProvider) OpenFile(name string, flag int, perm os.FileMode) (File, error)

OpenFile mocks base method.

func (*MockFileSystemProvider) ReadDir

func (m *MockFileSystemProvider) ReadDir(dir string) ([]FileInfo, error)

ReadDir mocks base method.

func (*MockFileSystemProvider) Remove

func (m *MockFileSystemProvider) Remove(name string) error

Remove mocks base method.

func (*MockFileSystemProvider) RemoveAll

func (m *MockFileSystemProvider) RemoveAll(path string) error

RemoveAll mocks base method.

func (*MockFileSystemProvider) Rename

func (m *MockFileSystemProvider) Rename(oldname, newname string) error

Rename mocks base method.

func (*MockFileSystemProvider) Stat

func (m *MockFileSystemProvider) Stat(name string) (FileInfo, error)

Stat mocks base method.

func (*MockFileSystemProvider) UseLogger

func (m *MockFileSystemProvider) UseLogger(logger any)

UseLogger mocks base method.

func (*MockFileSystemProvider) UseMetrics

func (m *MockFileSystemProvider) UseMetrics(metrics any)

UseMetrics mocks base method.

type MockFileSystemProviderMockRecorder

type MockFileSystemProviderMockRecorder struct {
	// contains filtered or unexported fields
}

MockFileSystemProviderMockRecorder is the mock recorder for MockFileSystemProvider.

func (*MockFileSystemProviderMockRecorder) ChDir

func (mr *MockFileSystemProviderMockRecorder) ChDir(dirname any) *gomock.Call

ChDir indicates an expected call of ChDir.

func (*MockFileSystemProviderMockRecorder) Connect

Connect indicates an expected call of Connect.

func (*MockFileSystemProviderMockRecorder) Create

Create indicates an expected call of Create.

func (*MockFileSystemProviderMockRecorder) Getwd

Getwd indicates an expected call of Getwd.

func (*MockFileSystemProviderMockRecorder) Mkdir

func (mr *MockFileSystemProviderMockRecorder) Mkdir(name, perm any) *gomock.Call

Mkdir indicates an expected call of Mkdir.

func (*MockFileSystemProviderMockRecorder) MkdirAll

func (mr *MockFileSystemProviderMockRecorder) MkdirAll(path, perm any) *gomock.Call

MkdirAll indicates an expected call of MkdirAll.

func (*MockFileSystemProviderMockRecorder) Open

Open indicates an expected call of Open.

func (*MockFileSystemProviderMockRecorder) OpenFile

func (mr *MockFileSystemProviderMockRecorder) OpenFile(name, flag, perm any) *gomock.Call

OpenFile indicates an expected call of OpenFile.

func (*MockFileSystemProviderMockRecorder) ReadDir

ReadDir indicates an expected call of ReadDir.

func (*MockFileSystemProviderMockRecorder) Remove

Remove indicates an expected call of Remove.

func (*MockFileSystemProviderMockRecorder) RemoveAll

func (mr *MockFileSystemProviderMockRecorder) RemoveAll(path any) *gomock.Call

RemoveAll indicates an expected call of RemoveAll.

func (*MockFileSystemProviderMockRecorder) Rename

func (mr *MockFileSystemProviderMockRecorder) Rename(oldname, newname any) *gomock.Call

Rename indicates an expected call of Rename.

func (*MockFileSystemProviderMockRecorder) Stat

Stat indicates an expected call of Stat.

func (*MockFileSystemProviderMockRecorder) UseLogger

func (mr *MockFileSystemProviderMockRecorder) UseLogger(logger any) *gomock.Call

UseLogger indicates an expected call of UseLogger.

func (*MockFileSystemProviderMockRecorder) UseMetrics

func (mr *MockFileSystemProviderMockRecorder) UseMetrics(metrics any) *gomock.Call

UseMetrics indicates an expected call of UseMetrics.

type MockLogger

type MockLogger struct {
	// contains filtered or unexported fields
}

MockLogger is a mock of Logger interface.

func NewMockLogger

func NewMockLogger(ctrl *gomock.Controller) *MockLogger

NewMockLogger creates a new mock instance.

func (*MockLogger) Debug

func (m *MockLogger) Debug(args ...any)

Debug mocks base method.

func (*MockLogger) Debugf

func (m *MockLogger) Debugf(format string, args ...any)

Debugf mocks base method.

func (*MockLogger) EXPECT

func (m *MockLogger) EXPECT() *MockLoggerMockRecorder

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockLogger) Error

func (m *MockLogger) Error(args ...any)

Error mocks base method.

func (*MockLogger) Errorf

func (m *MockLogger) Errorf(format string, args ...any)

Errorf mocks base method.

func (*MockLogger) Info

func (m *MockLogger) Info(args ...any)

Info mocks base method.

func (*MockLogger) Infof

func (m *MockLogger) Infof(format string, args ...any)

Infof mocks base method.

func (*MockLogger) Warn

func (m *MockLogger) Warn(args ...any)

Warn mocks base method.

func (*MockLogger) Warnf

func (m *MockLogger) Warnf(format string, args ...any)

Warnf mocks base method.

type MockLoggerMockRecorder

type MockLoggerMockRecorder struct {
	// contains filtered or unexported fields
}

MockLoggerMockRecorder is the mock recorder for MockLogger.

func (*MockLoggerMockRecorder) Debug

func (mr *MockLoggerMockRecorder) Debug(args ...any) *gomock.Call

Debug indicates an expected call of Debug.

func (*MockLoggerMockRecorder) Debugf

func (mr *MockLoggerMockRecorder) Debugf(format any, args ...any) *gomock.Call

Debugf indicates an expected call of Debugf.

func (*MockLoggerMockRecorder) Error

func (mr *MockLoggerMockRecorder) Error(args ...any) *gomock.Call

Error indicates an expected call of Error.

func (*MockLoggerMockRecorder) Errorf

func (mr *MockLoggerMockRecorder) Errorf(format any, args ...any) *gomock.Call

Errorf indicates an expected call of Errorf.

func (*MockLoggerMockRecorder) Info

func (mr *MockLoggerMockRecorder) Info(args ...any) *gomock.Call

Info indicates an expected call of Info.

func (*MockLoggerMockRecorder) Infof

func (mr *MockLoggerMockRecorder) Infof(format any, args ...any) *gomock.Call

Infof indicates an expected call of Infof.

func (*MockLoggerMockRecorder) Warn

func (mr *MockLoggerMockRecorder) Warn(args ...any) *gomock.Call

Warn indicates an expected call of Warn.

func (*MockLoggerMockRecorder) Warnf

func (mr *MockLoggerMockRecorder) Warnf(format any, args ...any) *gomock.Call

Warnf indicates an expected call of Warnf.

type MockMetrics

type MockMetrics struct {
	// contains filtered or unexported fields
}

MockMetrics is a mock of Metrics interface.

func NewMockMetrics

func NewMockMetrics(ctrl *gomock.Controller) *MockMetrics

NewMockMetrics creates a new mock instance.

func (*MockMetrics) EXPECT

func (m *MockMetrics) EXPECT() *MockMetricsMockRecorder

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockMetrics) NewHistogram

func (m *MockMetrics) NewHistogram(name, desc string, buckets ...float64)

NewHistogram mocks base method.

func (*MockMetrics) RecordHistogram

func (m *MockMetrics) RecordHistogram(ctx context.Context, name string, value float64, labels ...string)

RecordHistogram mocks base method.

type MockMetricsMockRecorder

type MockMetricsMockRecorder struct {
	// contains filtered or unexported fields
}

MockMetricsMockRecorder is the mock recorder for MockMetrics.

func (*MockMetricsMockRecorder) NewHistogram

func (mr *MockMetricsMockRecorder) NewHistogram(name, desc any, buckets ...any) *gomock.Call

NewHistogram indicates an expected call of NewHistogram.

func (*MockMetricsMockRecorder) RecordHistogram

func (mr *MockMetricsMockRecorder) RecordHistogram(ctx, name, value any, labels ...any) *gomock.Call

RecordHistogram indicates an expected call of RecordHistogram.

type MockRowReader

type MockRowReader struct {
	// contains filtered or unexported fields
}

MockRowReader is a mock of RowReader interface.

func NewMockRowReader

func NewMockRowReader(ctrl *gomock.Controller) *MockRowReader

NewMockRowReader creates a new mock instance.

func (*MockRowReader) EXPECT

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockRowReader) Next

func (m *MockRowReader) Next() bool

Next mocks base method.

func (*MockRowReader) Scan

func (m *MockRowReader) Scan(arg0 any) error

Scan mocks base method.

type MockRowReaderMockRecorder

type MockRowReaderMockRecorder struct {
	// contains filtered or unexported fields
}

MockRowReaderMockRecorder is the mock recorder for MockRowReader.

func (*MockRowReaderMockRecorder) Next

Next indicates an expected call of Next.

func (*MockRowReaderMockRecorder) Scan

func (mr *MockRowReaderMockRecorder) Scan(arg0 any) *gomock.Call

Scan indicates an expected call of Scan.

type MockStorageProvider

type MockStorageProvider struct {
	// contains filtered or unexported fields
}

MockStorageProvider is a mock of StorageProvider interface.

func NewMockStorageProvider

func NewMockStorageProvider(ctrl *gomock.Controller) *MockStorageProvider

NewMockStorageProvider creates a new mock instance.

func (*MockStorageProvider) Connect

func (m *MockStorageProvider) Connect(ctx context.Context) error

Connect mocks base method.

func (*MockStorageProvider) CopyObject

func (m *MockStorageProvider) CopyObject(ctx context.Context, src, dst string) error

CopyObject mocks base method.

func (*MockStorageProvider) DeleteObject

func (m *MockStorageProvider) DeleteObject(ctx context.Context, name string) error

DeleteObject mocks base method.

func (*MockStorageProvider) EXPECT

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockStorageProvider) ListDir

func (m *MockStorageProvider) ListDir(ctx context.Context, prefix string) ([]ObjectInfo, []string, error)

ListDir mocks base method.

func (*MockStorageProvider) ListObjects

func (m *MockStorageProvider) ListObjects(ctx context.Context, prefix string) ([]string, error)

ListObjects mocks base method.

func (*MockStorageProvider) NewRangeReader

func (m *MockStorageProvider) NewRangeReader(ctx context.Context, name string, offset, length int64) (io.ReadCloser, error)

NewRangeReader mocks base method.

func (*MockStorageProvider) NewReader

func (m *MockStorageProvider) NewReader(ctx context.Context, name string) (io.ReadCloser, error)

NewReader mocks base method.

func (*MockStorageProvider) NewWriter

func (m *MockStorageProvider) NewWriter(ctx context.Context, name string) io.WriteCloser

NewWriter mocks base method.

func (*MockStorageProvider) StatObject

func (m *MockStorageProvider) StatObject(ctx context.Context, name string) (*ObjectInfo, error)

StatObject mocks base method.

type MockStorageProviderMockRecorder

type MockStorageProviderMockRecorder struct {
	// contains filtered or unexported fields
}

MockStorageProviderMockRecorder is the mock recorder for MockStorageProvider.

func (*MockStorageProviderMockRecorder) Connect

func (mr *MockStorageProviderMockRecorder) Connect(ctx any) *gomock.Call

Connect indicates an expected call of Connect.

func (*MockStorageProviderMockRecorder) CopyObject

func (mr *MockStorageProviderMockRecorder) CopyObject(ctx, src, dst any) *gomock.Call

CopyObject indicates an expected call of CopyObject.

func (*MockStorageProviderMockRecorder) DeleteObject

func (mr *MockStorageProviderMockRecorder) DeleteObject(ctx, name any) *gomock.Call

DeleteObject indicates an expected call of DeleteObject.

func (*MockStorageProviderMockRecorder) ListDir

func (mr *MockStorageProviderMockRecorder) ListDir(ctx, prefix any) *gomock.Call

ListDir indicates an expected call of ListDir.

func (*MockStorageProviderMockRecorder) ListObjects

func (mr *MockStorageProviderMockRecorder) ListObjects(ctx, prefix any) *gomock.Call

ListObjects indicates an expected call of ListObjects.

func (*MockStorageProviderMockRecorder) NewRangeReader

func (mr *MockStorageProviderMockRecorder) NewRangeReader(ctx, name, offset, length any) *gomock.Call

NewRangeReader indicates an expected call of NewRangeReader.

func (*MockStorageProviderMockRecorder) NewReader

func (mr *MockStorageProviderMockRecorder) NewReader(ctx, name any) *gomock.Call

NewReader indicates an expected call of NewReader.

func (*MockStorageProviderMockRecorder) NewWriter

func (mr *MockStorageProviderMockRecorder) NewWriter(ctx, name any) *gomock.Call

NewWriter indicates an expected call of NewWriter.

func (*MockStorageProviderMockRecorder) StatObject

func (mr *MockStorageProviderMockRecorder) StatObject(ctx, name any) *gomock.Call

StatObject indicates an expected call of StatObject.

type ObjectInfo

type ObjectInfo struct {
	Name         string
	Size         int64
	ContentType  string
	LastModified time.Time
	IsDir        bool
}

ObjectInfo represents cloud storage object metadata.

type OperationLog

type OperationLog struct {
	Operation string  `json:"operation"`
	Duration  int64   `json:"duration"`
	Status    *string `json:"status"`
	Location  string  `json:"location,omitempty"`
	Message   *string `json:"message,omitempty"`
	Provider  string  `json:"provider"` // Identifies the storage provider
}

OperationLog represents a standardized log entry for file operations.

func (*OperationLog) PrettyPrint

func (fl *OperationLog) PrettyPrint(writer io.Writer)

PrettyPrint formats and prints the log entry to the provided writer with proper column alignment.

type OperationObservability

type OperationObservability struct {
	Context   context.Context
	Logger    datasource.Logger
	Metrics   StorageMetrics
	Operation string
	Location  string
	Provider  string
	StartTime time.Time
	Status    *string
	Message   *string
}

OperationObservability contains all parameters needed for logging and metrics collection.

type RowReader

type RowReader interface {
	Next() bool
	Scan(any) error
}

func NewJSONReader

func NewJSONReader(r io.Reader, logger datasource.Logger) (RowReader, error)

NewJSONReader creates a RowReader for JSON files (auto-detects array vs object).

func NewTextReader

func NewTextReader(r io.Reader, logger datasource.Logger) RowReader

NewTextReader creates a RowReader for text/CSV files. Each call to Next() reads one line from the file. Scan() must receive a *string pointer to store the line content.

Example:

reader := file.NewTextReader(f, logger)
for reader.Next() {
    var line string
    reader.Scan(&line)
    fmt.Println(line)
}

type StorageMetrics

type StorageMetrics interface {
	// NewHistogram creates a new histogram with the given name, description, and buckets.
	NewHistogram(name, desc string, buckets ...float64)

	// RecordHistogram records a value in the histogram with the given name and labels.
	RecordHistogram(ctx context.Context, name string, value float64, labels ...string)
}

StorageMetrics interface that all storage providers should use.

type StorageProvider

type StorageProvider interface {
	Connect(ctx context.Context) error

	NewReader(ctx context.Context, name string) (io.ReadCloser, error)
	NewRangeReader(ctx context.Context, name string, offset, length int64) (io.ReadCloser, error)
	NewWriter(ctx context.Context, name string) io.WriteCloser

	DeleteObject(ctx context.Context, name string) error
	CopyObject(ctx context.Context, src, dst string) error
	StatObject(ctx context.Context, name string) (*ObjectInfo, error)

	ListObjects(ctx context.Context, prefix string) ([]string, error)
	ListDir(ctx context.Context, prefix string) (objects []ObjectInfo, prefixes []string, err error)
}

StorageProvider abstracts low-level storage operations (stateless). This is the interface that each provider (GCS, S3, FTP, SFTP) must implement.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL