Available on crate feature
zip only.Expand description
§Zip File Tasklet
This module provides a tasklet for creating ZIP archives from files and directories. It’s designed to be similar to Spring Batch’s file compression capabilities.
§Features
- Compress single files or entire directories
- Configurable compression level
- Support for filtering files to include/exclude
- Proper error handling and logging
- Builder pattern for easy configuration
§Examples
§Basic ZIP Creation
use spring_batch_rs::core::step::{StepBuilder, StepExecution, Step};
use spring_batch_rs::tasklet::zip::ZipTaskletBuilder;
use std::path::Path;
use std::fs;
use std::env::temp_dir;
// Create test data directory and file
let temp_data_dir = temp_dir().join("test_data_zip");
fs::create_dir_all(&temp_data_dir).unwrap();
fs::write(temp_data_dir.join("test.txt"), "test content").unwrap();
let archive_path = temp_dir().join("archive_test.zip");
let zip_tasklet = ZipTaskletBuilder::new()
.source_path(&temp_data_dir)
.target_path(&archive_path)
.compression_level(6)
.build()?;
let step = StepBuilder::new("zip-files")
.tasklet(&zip_tasklet)
.build();
let mut step_execution = StepExecution::new("zip-files");
step.execute(&mut step_execution)?;
// Cleanup test files
fs::remove_file(&archive_path).ok();
fs::remove_dir_all(&temp_data_dir).ok();§ZIP with File Filtering
use spring_batch_rs::tasklet::zip::ZipTaskletBuilder;
let zip_tasklet = ZipTaskletBuilder::new()
.source_path("./logs")
.target_path("./logs_archive.zip")
.include_pattern("*.log")
.exclude_pattern("*.tmp")
.build()?;Structs§
- ZipTasklet
- A tasklet for creating ZIP archives from files and directories.
- ZipTasklet
Builder - Builder for creating ZipTasklet instances with a fluent interface.