Advanced Metadata Filtering Techniques
Filter files by EXIF, hashes, and provider-specific metadata
Overview
FileFortress stores rich metadata about your files, including EXIF data for photos, file hashes,
owner information, and provider-specific attributes. The --meta option provides powerful
filtering capabilities to search files based on this metadata.
Understanding Metadata Structure
FileFortress organizes metadata into several categories:
EXIF Data
- exif.cameraMake
- exif.cameraModel
- exif.lens
- exif.focalLength
- exif.aperture
- exif.iso
- exif.takenAt
- exif.gpsLatitude
- exif.gpsLongitude
Image Data
- image.width
- image.height
- image.format
- image.colorSpace
- image.bitDepth
Hash Data
- hash.md5
- hash.sha1
- hash.sha256
Owner/Sharing
- owner.email
- owner.name
- sharing.shared
- sharing.permissions
Metadata Operators Reference
FileFortress supports powerful operators for metadata filtering:
| Operator | Description | Example |
|---|---|---|
= |
Equals (exact match) | --meta "exif.cameraMake=Canon" |
!= |
Not equals | --meta "sharing.shared!=true" |
>= |
Greater than or equal | --meta "image.width>=1920" |
> |
Greater than | --meta "exif.iso>800" |
<= |
Less than or equal | --meta "image.width<=1024" |
< |
Less than | --meta "exif.aperture<2.8" |
~= |
Contains (case-insensitive) | --meta "owner.email~=gmail.com" |
^= |
Starts with | --meta "hash.md5^=d128a6ef" |
$= |
Ends with | --meta "mime.type$=jpeg" |
in |
Value in pipe-separated list | --meta "exif.cameraMake in Canon|Nikon|Sony" |
exists |
Key exists (no value needed) | --meta "exif.gpsLatitude exists" |
EXIF Data Filtering for Photos
Filter by Camera
filefortress search "" --media-type image --meta "exif.cameraMake=Canon"
filefortress search "" --media-type image --meta "exif.cameraMake in Canon|Nikon|Sony"
filefortress search "" --meta "exif.cameraModel=EOS R5"
Filter by Lens and Settings
filefortress search "" --meta "exif.lens~=70-200"
filefortress search "" --meta "exif.aperture<=2.8"
filefortress search "" --meta "exif.iso>=3200"
filefortress search "" --meta "exif.focalLength>=200"
Filter by Date and Time
filefortress search "" --meta "exif.takenAt>=2024-01-01"
filefortress search "" --meta "exif.takenAt>=2024-01-01" --meta "exif.takenAt<=2024-12-31"
Filter by Location (GPS)
filefortress search "" --meta "exif.gpsLatitude exists"
filefortress search "" --media-type image --meta "exif.gpsLatitude exists" --meta "exif.gpsLatitude!="
Image Dimension Filtering
filefortress search "" --meta "image.width>=3840" --meta "image.height>=2160"
filefortress search "" --media-type image --meta "image.height>image.width"
filefortress search "" --meta "image.width=image.height"
File Hash Searches
Use file hashes for duplicate detection and exact file matching:
filefortress search "" --meta "hash.md5=d128a6ef7f2e8f5c9b1a2c3d4e5f6a7b"
filefortress search "" --meta "hash.md5^=d128a6ef"
filefortress search "" --meta "hash.md5 exists"
Provider-Specific Metadata
Google Drive & OneDrive
filefortress search "" --remote-type gdrive --meta "sharing.shared=true"
filefortress search "" --meta "[email protected]"
filefortress search "" --meta "[email protected]"
Amazon S3 & Backblaze B2
filefortress search "" --remote-type s3 --remote-name "my-bucket"
filefortress search "" --remote-type s3 --meta "storage.class=GLACIER"
Combining Multiple Metadata Filters
Chain multiple --meta options to create complex queries. All conditions must match (AND logic):
filefortress search "" --meta "exif.cameraMake=Canon" --meta "exif.takenAt>=2024-01-01" --meta "image.width>=4000"
filefortress search "" --meta "exif.focalLength>=200" --meta "exif.aperture<=2.8"
filefortress search "" --meta "[email protected]" --meta "sharing.shared=false"
Real-World Use Cases
Photography Workflows
Find portfolio-quality images
High-resolution Canon photos with wide aperture:
filefortress search "" --meta "exif.cameraMake=Canon" --meta "exif.aperture<=2.8" --meta "image.width>=4000" --save-query "portfolio-quality"
Find event photos by date and camera
All photos from wedding day with specific camera:
filefortress search "wedding" --meta "exif.takenAt>=2024-06-15" --meta "exif.takenAt<=2024-06-15" --meta "exif.cameraMake=Canon"
Duplicate Detection
Find potential duplicates by hash
Use find duplicates command or search by hash:
filefortress find duplicates --save-query "all-duplicates"
File Organization
Find files to archive
Large, old files without GPS data:
filefortress search "" --size-min 100MB --modified-before "365 days" --meta "exif.gpsLatitude exists" --meta "exif.gpsLatitude="
Performance Optimization
--remote-name or --remote-type when possible
--save-query
Common Pitfalls
Solution: Not all files have all metadata. Use exists operator to check if metadata is present before filtering by value.
Solution: File hashes are only available after enrichment. Run filefortress remotes enrich to calculate hashes.
Solution: Use ISO 8601 format (YYYY-MM-DD) for date comparisons. Example: --meta "exif.takenAt>=2024-01-01"