Checksums help answer two different questions: did these bytes arrive intact, and have these exact bytes appeared before? They cannot tell you whether two visually similar photos or differently encoded videos are the same creative asset.
Verify transport integrity
Calculate a supported checksum at upload and compare it with the storage service’s recorded value. Keep the algorithm and checksum alongside the source record. For multipart uploads, follow the storage provider’s checksum rules rather than assuming an object ETag is always a plain file hash. A mismatch should fail intake and be visible to the uploader.
Detect exact duplicates
When two files have the same strong content hash and length, they are likely byte-identical. Present the earlier asset and its rights and approval state before deciding whether to reuse it. Do not automatically merge records that represent different business contexts; the same image may have different campaign permissions.
Keep similarity separate
Perceptual hashes or image embeddings can surface crops, recompressions, and lookalikes for review. They are search aids, not proof of identity. Record their confidence and let a person confirm matches when deletion, rights, or publication depends on the answer.
Design the edge cases
Test a renamed exact copy, a recompressed image, a crop, and two different files with the same name. Decide whether your goal is storage savings, rights control, or cleaner search. Each goal requires a different response to a possible duplicate.
A concrete example
Two photographers upload files named hero.jpg. One is byte-identical to an existing image; the other is a new edit. A content hash catches the exact copy without overwriting the new file. Both still need a rights check because identical bytes can arrive under different usage agreements.
Related reading
- Media Workflow Automation: A Practical Starting Guide
- Automated Media Ingestion: From Upload to Ready Asset
- Media Upload Validation: What to Check Before Processing
Primary reference
The Amazon S3 checksum documentation provides the underlying technical reference for this workflow.
