Пакет предоставляет реализацию интерфейса 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
, для Windowszip
; - WithCheckDirectory - проверяет директорию для записи файлов на существование и доступность, если директория не существует, создает её;
- WithChangeShardErrorIgnore - игнорирует ошибку
github.com/D3rus/go-library/file/ChangedNextShardError
.
Важно. Опции будут примениться в том порядке, в котором они были переданы, из-за этого, такие опции как:
- WithChangeShardRepeatWrite
должны быть переданы, до опции WithChangeShardErrorIgnore, для их нормальной работы.