pub struct FileConfig {Show 14 fields
pub directory: String,
pub delay: Duration,
pub initial_delay: Duration,
pub noop: bool,
pub delete: bool,
pub file_name: Option<String>,
pub include: Option<String>,
pub exclude: Option<String>,
pub recursive: bool,
pub file_exist: FileExistStrategy,
pub temp_prefix: Option<String>,
pub auto_create: bool,
pub read_timeout: Duration,
pub write_timeout: Duration,
/* private fields */
}Expand description
Configuration for file component endpoints.
§Streaming
Both the file consumer and producer use native streaming with no RAM materialization:
-
The consumer creates a
Body::Streambacked bytokio::fs::FileviaReaderStream. Files of any size are handled without loading them into memory. -
The producer writes via
tokio::io::copydirectly to atokio::fs::FileusingBody::into_async_read(). Writes for theOverridestrategy are atomic: data is written to a temporary file first and renamed only on success, preventing partial files on failure.
§Write strategies (fileExist URI parameter)
| Value | Behavior |
|---|---|
Override (default) | Atomic write via temp file + rename |
Append | Appends to existing file; non-atomic by nature |
Fail | Returns error if file already exists |
Fields§
§directory: StringDirectory path to read from or write to.
delay: DurationPolling delay as Duration.
initial_delay: DurationInitial delay as Duration.
noop: boolIf true, don’t delete or move files after processing.
delete: boolIf true, delete files after processing.
file_name: Option<String>Fixed filename for producer (optional).
include: Option<String>Regex pattern for including files (consumer).
exclude: Option<String>Regex pattern for excluding files (consumer).
recursive: boolWhether to scan directories recursively.
file_exist: FileExistStrategyStrategy for handling existing files when writing.
temp_prefix: Option<String>Prefix for temporary files during atomic writes.
auto_create: boolWhether to automatically create directories.
read_timeout: DurationRead timeout as Duration.
write_timeout: DurationWrite timeout as Duration.
Implementations§
Source§impl FileConfig
impl FileConfig
Sourcepub fn parse_uri_components(parts: UriComponents) -> Result<Self, CamelError>
pub fn parse_uri_components(parts: UriComponents) -> Result<Self, CamelError>
Parse URI components into this config.
Call this from your custom UriConfig::from_components implementation.
Source§impl FileConfig
impl FileConfig
Sourcepub fn apply_global_defaults(&mut self, global: &FileGlobalConfig)
pub fn apply_global_defaults(&mut self, global: &FileGlobalConfig)
Apply global config defaults. Since FileConfig uses a proc macro that bakes in defaults, we compare Duration values against the known macro defaults to detect “not explicitly set by user”. Only overrides when current value == macro default.
Note: If a user explicitly sets a URI param to its default value (e.g.,
?delay=500), it is indistinguishable from “not set” and will be overridden
by global config. This is a known limitation of the Duration comparison approach.
Trait Implementations§
Source§impl Clone for FileConfig
impl Clone for FileConfig
Source§fn clone(&self) -> FileConfig
fn clone(&self) -> FileConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more