How Syncs Work
- Poll — At each interval, Mixpeek lists files from your storage provider using the configured
source_pathand filters. - Filter — Files are matched against glob patterns, size limits, MIME types, and provider-specific metadata filters.
- Create objects — Matching files are registered in the target bucket. Duplicates are skipped by default via source tracking.
- Submit batches — Objects are grouped into batches and submitted to the bucket’s collection pipeline for processing.
- Checkpoint — A resume cursor is saved so the next poll picks up where the last one left off.
Sync Modes
Create a Sync
1
Connect your storage
Create a storage connection with credentials for your provider.
2
Configure the sync
3
Trigger the first sync
Configuration Reference
Core Settings
File Filters
Narrow which files get synced. All filters combine with AND logic.Metadata Filters
Filter on provider-specific metadata fields. Useful for syncing only assets that match certain tags, statuses, or custom fields in your storage system.equals, not_equals, contains, not_contains, gt, lt, gte, lte, exists.
Schema Mapping
Map provider metadata to bucket schema fields during sync, so structured data arrives alongside your files.Lifecycle Management
Pause and Resume
Temporarily stop a sync without losing progress:Manual Trigger
Force a sync to run immediately, outside the polling schedule:Monitoring
Check sync status and metrics:Robustness
Syncs are designed for unattended, long-running operation:- Distributed locking prevents concurrent runs of the same sync
- Resume cursors checkpoint progress so interrupted syncs pick up where they left off
- Dead letter queue retries failed files up to 3 times before marking them as failed
- Auto-suspend pauses syncs after consecutive failures to prevent runaway errors
- Idempotent ingestion uses source tracking to never duplicate objects on retries
- Reconciliation (the
reconcileobject) cascades source deletes (on_delete), propagates metadata updates (on_update), and drops objects that no longer match your filters (on_filter_drift) — all defaulttrue

