Duplicate detection on upload (skip exact matches, report what was skipped)

Suggestion
Requested by Yitzchak Woolf about 1 month ago

When an upload fails partway through a large gallery, the only way to recover is to delete the gallery and re-upload everything from scratch, because the platform re-uploads every file regardless of whether it's already there. This wastes hours of my time and costs you bandwidth, processing, and storage on files you already have.

Requested behavior:

When a file is selected for upload, hash it client-side (SHA-256) in the browser before sending.
Check whether that hash already exists in the target gallery.
If it does, skip the upload — no modal, no interruption.
When the batch finishes, show a summary: X files uploaded, Y skipped as duplicates (with an expandable list of filenames), Z failed.
Match on file content (hash), not filename. Camera and editor filenames are unreliable.
Scope to within a single gallery for v1 — no need to dedupe across the whole account yet.

Zenfolio handles this well: skipped files are listed at the end of the upload, so I know exactly what happened without having to make decisions mid-upload. That's the UX I'm asking for.

To be clear about scope: this is not perceptual matching (detecting re-edited or re-exported versions of the same photo). That's a genuinely harder feature and a separate request. This is exact byte-match dedup via hash lookup — a well-established pattern used by Dropbox, Google Drive, iCloud, Pixieset, and most file-sync products built in the last 15 years. It should reduce your infrastructure costs (less ingest, less processing, less duplicate storage) as well as save user time.

Real-world impact for me today: I uploaded a folder, half of it failed, I re-uploaded the whole folder expecting dedup to catch it (based on a previous announcement that this existed), and now I have to delete the entire gallery and start over. A v1 of this feature would have turned a multi-hour recovery into a no-op.

Activity (0 comments)

Be the first to comment on this feature request.