writer

package
v1.4.5 Latest Latest
Warning

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

Go to latest
Published: Oct 23, 2023 License: MIT Imports: 12 Imported by: 0

README

Запись в шарды файла.

Пакет предоставляет реализацию интерфейса github.com/D3rus/go-library/file/Writer которая находится в файле writer.go.

Пакет предоставляет метод New(directory string, namer file.Namer, rotator file.Rotator, options ...file.WriterOption), options - является опциональным аргументом, пакет предоставляет следующие методы опций:

  • WithChangeShardRepeatWrite - автоматически проводит повторную запись данных, если была смена активного шарда файла, основывает свою логику на ошибке github.com/D3rus/go-library/file/ChangedNextShardError;
  • WithWriteBytesLength - записывает в метрику, кол. записанных байтов;
  • WithFileCount - записывает в метрику, кол. новых созданных файлов;
  • WithCompressLZ4 - сжимает данные алгоритмом LZ4;
  • WithArchiveTarGZ - сжимает файл, после его освобождения, в архив tar.gz;
  • WithArchiveZIP - сжимает файл, после его освобождения, в архив zip;
  • WithArchive - сжимает файл в архив, тип архива выбирается автоматически, для Unix подобных систем tar.gz, для Windows zip;
  • WithCheckDirectory - проверяет директорию для записи файлов на существование и доступность, если директория не существует, создает её;
  • WithChangeShardErrorIgnore - игнорирует ошибку github.com/D3rus/go-library/file/ChangedNextShardError.

Важно. Опции будут примениться в том порядке, в котором они были переданы, из-за этого, такие опции как:

  • WithChangeShardRepeatWrite

должны быть переданы, до опции WithChangeShardErrorIgnore, для их нормальной работы.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func New

func New(directory string, namer file.Namer, rotator file.Rotator, options ...file.WriterOption) (file.Writer, error)

func WithArchive

func WithArchive() file.WriterOption

func WithArchiveTarGZ

func WithArchiveTarGZ() file.WriterOption

func WithArchiveZIP

func WithArchiveZIP() file.WriterOption

func WithChangeShardErrorIgnore

func WithChangeShardErrorIgnore() file.WriterOption

func WithChangeShardRepeatWrite

func WithChangeShardRepeatWrite() file.WriterOption

func WithCheckDirectory

func WithCheckDirectory(directoryPath string) file.WriterOption

func WithCompressLZ4

func WithCompressLZ4() file.WriterOption

func WithFileCount

func WithFileCount(counter prometheus.Counter) file.WriterOption

func WithWriteBytesLength

func WithWriteBytesLength(counter prometheus.Counter) file.WriterOption

Types

type ChangeShardErrorIgnore

type ChangeShardErrorIgnore struct {
	file.Writer
}

func NewChangeShardErrorIgnore

func NewChangeShardErrorIgnore(writer file.Writer) *ChangeShardErrorIgnore

func (*ChangeShardErrorIgnore) Write

func (ignorer *ChangeShardErrorIgnore) Write(buffer []byte) (int, error)

type ChangeShardRepeatWrite

type ChangeShardRepeatWrite struct {
	file.Writer
}

func NewChangeShardRepeatWrite

func NewChangeShardRepeatWrite(writer file.Writer) *ChangeShardRepeatWrite

func (*ChangeShardRepeatWrite) Write

func (repeater *ChangeShardRepeatWrite) Write(buffer []byte) (int, error)

type FileCount

type FileCount struct {
	file.Writer
	// contains filtered or unexported fields
}

func NewFileCount

func NewFileCount(writer file.Writer, counter prometheus.Counter) *FileCount

func (*FileCount) Write

func (metric *FileCount) Write(buffer []byte) (int, error)

type LZ4

type LZ4 struct {
	file.Writer
	// contains filtered or unexported fields
}

func NewLZ4

func NewLZ4(writer file.Writer) *LZ4

func (*LZ4) Close

func (lz4 *LZ4) Close() error

func (*LZ4) Write

func (lz4 *LZ4) Write(buffer []byte) (int, error)

type TarGZ

type TarGZ struct {
	file.Writer
	// contains filtered or unexported fields
}

func NewTarGZ

func NewTarGZ(writer file.Writer, lastFile *os.File) *TarGZ

func (*TarGZ) Write

func (archive *TarGZ) Write(buffer []byte) (int, error)

type WriteBytesLength

type WriteBytesLength struct {
	file.Writer
	// contains filtered or unexported fields
}

func NewWriteBytesLength

func NewWriteBytesLength(writer file.Writer, counter prometheus.Counter) *WriteBytesLength

func (*WriteBytesLength) Write

func (metric *WriteBytesLength) Write(buffer []byte) (int, error)

type Writer

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

func NewWriter

func NewWriter(directory string, namer file.Namer, rotator file.Rotator) *Writer

func (*Writer) Close

func (writer *Writer) Close() error

func (*Writer) File

func (writer *Writer) File() (*os.File, error)

func (*Writer) Namer

func (writer *Writer) Namer() file.Namer

func (*Writer) OpenNewFile

func (writer *Writer) OpenNewFile() error

func (*Writer) Write

func (writer *Writer) Write(buffer []byte) (int, error)

type ZIP

type ZIP struct {
	file.Writer
	// contains filtered or unexported fields
}

func NewZIP

func NewZIP(writer file.Writer, lastFile *os.File) *ZIP

func (*ZIP) Write

func (archive *ZIP) Write(buffer []byte) (int, error)

Jump to

Keyboard shortcuts

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