A wedding shoot produces tens of gigabytes. A commercial product session, similar. The photography is the hard part, but delivery is the part clients remember going wrong: the link that expired during their honeymoon, the compressed previews mistaken for finals, the USB stick in the post. A delivery workflow is worth building once, properly, and reusing per client.
Why the default routes fail
Email is out before you start - attachment limits are two orders of magnitude below a shoot, and compression to fit destroys exactly what the client paid for.
Quick transfer services expire on their schedule, not yours. A wedding client opens the gallery link when the honeymoon ends; a transfer that lived seven days has already died. Re-uploading forty gigabytes because a link lapsed is unpaid work.
Consumer photo sharing compresses. Anything that recompresses or strips the EXIF data is damaging the deliverable - capture metadata is part of professional work, not baggage.
What delivery actually requires: full-resolution originals, byte for byte; links whose lifetime you control; something the client’s least technical relative can open; and no re-uploading when someone loses the email.
The folder structure that scales
One folder per client, one subfolder per deliverable stage:
Clients/
Harper-Wedding-2026/
01-proofs/
02-finals/
03-print-ready/
The stages get shared separately, because they serve different moments - and sharing a folder rather than a zip means adding the three re-edited images later updates what the client already has, no new link, no version confusion. Our share links work at folder level for exactly this reason.
Proofing and finals want different links
Proofs go out view-only. A view-only link shows the gallery in the browser without offering the original files for download - the client reviews and selects, and the full-resolution masters are not circulating before selection is settled or the balance is paid.
Finals go out as downloads, with a password and a generous expiry. The download link hands over the originals. A password keeps a forwarded email from becoming public access, and the expiry should match how clients actually behave - months, not days, for wedding work. When the link does lapse, extending it is a setting, not a re-upload, because the link points at storage rather than at a temporary copy.
Selections come back through a file request. For the client’s own contributions - inspiration boards, the guest-photos folder, logo files from a commercial client - an upload link lets them drop files into the project folder without an account and without seeing anything else in it. The full loop, outbound and inbound, runs through one folder tree.
The arithmetic and the archive
Delivery storage is working storage: size it honestly against your real shoot volume rather than the brochure number. Once a project closes, the masters become archive material - the cold versus hot trade-off is worth understanding before parking terabytes, and the RAW originals deserve a place in your own 3-2-1 arrangement independent of any client link. Bulk moves from the editing machine go faster over rclone and the S3 API than through a browser tab, and the same tooling verifies the copy before you clear a card or a scratch disk.
The workflow, once, on paper
Create the client folder from a template. Proofs up, view-only link out. Selections back through the file request. Finals up, passworded download link out with a long expiry, password sent by another channel. Archive the masters, verify, clear the working copies. Every step is a link to the same storage - nothing re-uploads, nothing expires by surprise, and the client experience is two clicks and their own photos, full size, when they finally get to them.
Frequently asked questions
How do photographers send full resolution photos to clients?
Through folder share links backed by storage rather than transfer services: the link carries a password, an expiry measured in months, and hands over the original files. Adding late edits to the folder updates what the client already has.
How do I share proofs without giving clients the originals?
Use a view-only link for the proofing stage. The client sees the gallery in the browser and makes selections, but the full-resolution masters are not downloadable until you share the finals as a download link.
What happens when a client's gallery link expires?
If the link points at storage, extending it is a setting change and nothing re-uploads. That is the main advantage over transfer services, where an expired link means uploading the shoot again.