Delivery
Deliver an Online Gallery and a Full-Resolution ZIP From One Link
One address the client can bookmark. They browse, pick and share from it, and they pull the entire shoot at full resolution from the same page.
Updated 2026-09-07
Most photographers deliver twice. There is a gallery link, where the client looks at the photos, stars favourites and forwards the page to family. Then there is a second link somewhere else, a file transfer or a cloud folder, holding the actual full-resolution files. Two links, two systems, two sets of instructions in one email.
This guide is about collapsing that into one. The client gets a single address. On that page they browse the shoot, send their picks, share it, and download the full-resolution files. The rest of this page covers how to set that up, what the one link can and cannot promise, and the one seam you should tell your client about instead of hiding.
For the wider question of which delivery method to use in the first place, see the complete guide to delivering photos to clients. This page assumes you have already decided on a gallery and want the heavy files to live in the same place.
Why the two-link handoff quietly fails
Nothing about two links is wrong on the day you send them. The failures show up weeks and months later, and they are always the same handful.
- The client bookmarks the pretty one. They save the gallery, because that is the page they enjoyed. The transfer link was a wall of text in an email, and the email is gone.
- The transfer expires while the gallery lives on. Now the client has a working link that shows photos and a dead link that held the files. From where they sit, the delivery half broke for no reason.
- Nobody remembers which link had the finals. You sent a preview set, then a corrected set, then the finals. Three links, three dates, one confused couple.
- The re-send request arrives eight months later. The client wants the files for an album, and you are the archive. You reopen the job, find the export, and rebuild a transfer by hand.
- Forwarding breaks it further. The client sends the gallery to a parent who wants prints. The parent gets the browsing half of the delivery and none of the files.
Every one of these is a routing problem, not a storage problem. The fix is to make one address the answer to every question the client will ever ask about this shoot.
The two jobs one link has to do
A delivery link is asked to do two things that pull in opposite directions. Browsing wants small files, instant loading and a page that survives being forwarded to twenty people. Handover wants the heaviest version of every frame, downloaded once, by one person, on a computer.
clientgallery.io keeps both on the same page by serving two different assets from it. The photos you upload are compressed in your own browser into proof JPEGs of roughly 0.6 MB each, and those are what the gallery page renders. The full-resolution delivery is a separate ZIP you upload for that gallery, and the client reaches it from a button on the same page.
| On the client's page | What it hands over | How long it is there |
|---|---|---|
| The gallery itself | Proof JPEGs, about 0.6 MB each, up to 1,000 photos per gallery | As long as the account exists |
| Download all photos, one click | Every proof in the gallery as one ZIP, in your order | As long as the gallery is up |
| Single image download | One proof, under its original shoot filename | As long as the gallery is up |
| Full-resolution files | The ZIP you uploaded for that gallery | Three days per handoff, re-uploadable at any time |
The client never has to know which is which. They see the gallery, and when the full-resolution ZIP is live they see one more button labelled with the file size and how many days are left on it.
Be honest about the seam: the link is permanent, the window is not
This is the part a marketing page would skip, so here it is plainly. One link doing both jobs is true of the link. It is not true of the timing.
The gallery does not expire. It stays at the same address for as long as your account exists, and so do the proofs, the picks and the sharing. The full-resolution ZIP is a handoff, not storage. It stays live for three days from the moment you upload it, and then it goes. The gallery is untouched when it does. Only the heavy file leaves.
The recovery path is the reason this works in practice. You can upload the ZIP again at any time, and each upload restarts the three-day clock. An account can hold 100 GB of live ZIPs at once across all its galleries, and expired ones release their space, so re-issuing a delivery a year later costs you nothing but the upload. When the client writes in asking for the files again, you do not rebuild a transfer or hunt for a new host. You drop the ZIP back onto the gallery they already have bookmarked and reply with the same link you sent the first time.
Tell the client this in one sentence when you deliver. Something like: the gallery is yours to keep, the full-resolution download is live for three days, and if you miss it, ask and I will put it back. A window the client knows about is a policy. A window they discover on day four is a complaint.
Setting it up, in order
The workflow below is the whole thing. It assumes the shoot is edited and exported.
- Create the gallery and upload the photos. They are compressed in your browser on the way up and become the proofs the client browses. This is the page that will live at the client's address permanently.
- Arrange it the way you want it read. A gallery can be divided into named sections, getting ready, ceremony, reception, and the client sees them as headed blocks on one page with a jump bar at the top.
- Decide the download posture before you send. The per-gallery downloads toggle is on by default. If the delivery is gated on an invoice, switch it off now and back on later by hand.
- Export the finals as one ZIP and upload it to that gallery. The studio page takes one ZIP per gallery. The quota is checked before the bytes start moving, so a file that will not fit is refused up front rather than halfway.
- Send the link, once. The client link is on your own subdomain and carries your logo, your name, your colours and no platform branding. Both jobs now answer to that one address.
- Re-upload when it is asked for. The studio shows Replace ZIP once one is present, with a countdown of the days remaining. Replacing it deletes the old object and restarts the clock.
Full-resolution delivery is part of the paid plan, which is $10 a month or $100 a year, and the refusal for an unpaid account happens on the server rather than in the interface. A free account holds one gallery.
What the downloads toggle actually controls
Photographers who gate delivery on payment need to know exactly how strong the switch is, because a half-understood control is worse than none.
The per-gallery downloads toggle is checked on the server for the whole-gallery ZIP route. With downloads off, that route answers with a refusal, not a file. The single-image path is different: turning the toggle off hides the per-photo download button, but it does not make an individual proof URL unreachable. Treat it as a clear signal to an honest client rather than a lock against a determined one.
If you need a real barrier, use the gallery password instead. That check runs on the server before anything is rendered. Without the password the page returns only the prompt, the photos are never queried, and the whole-gallery ZIP and the full-resolution handoff both refuse the request as well.
When one link is the wrong shape for the job
There is a client this page does not fit, and pretending otherwise would waste your time. If what the client actually needs is permanent full-resolution access, meaning they expect to pull original-size files on demand in year two without asking you first, then a gallery with a handoff window is the wrong tool. A shared cloud folder is the honest recommendation for that case.
It is not a glamorous answer, and it is cheap. Every Google Account includes 15 GB of storage at no charge, and the 100 GB Google One plan is listed at CA$2.79 a month on the Canadian storefront. Dropbox Basic is free with 2 GB, and Dropbox Plus is listed at CA$12.99 a month for 2 TB, described as being for one person. Both prices are the Canadian storefront figures fetched on 7 September 2026.
A cloud folder buys you permanence and nothing else. There is no proofing, no picks, no branding, and the client is one wrong click from your other files. Worth knowing too: a Dropbox shared link does not expire on its own, expiry has to be set per link, and Dropbox publishes that setting as available on Professional, Essentials, Standard, Advanced, Business, Business Plus and Enterprise. So the trade is real in both directions. The folder keeps the files sitting there for as long as you keep paying for the storage, and gives you no control over the experience. The gallery owns the experience and puts a window on the heavy files.
The arrangement that works for most studios is not one or the other. The client link is the gallery, and it is the only address they ever get. Your own archive lives somewhere else entirely, off-site, and is never the same copy you deliver from. Delivery is not backup, and a delivery platform holding your only master is a plan waiting to fail.
A short checklist before you send the link
| Check | Why it matters |
|---|---|
| The ZIP is uploaded before the link goes out | The full-resolution button only appears while a ZIP is live |
| The downloads toggle is in the state you meant | On by default, and only the whole-gallery ZIP is server-enforced |
| The three-day window is stated in your email | A known window is a policy, an unknown one is a complaint |
| The password is set if the gallery is private | It is the only check that also guards the ZIP and the handoff |
| You opened the link yourself on a phone | Most clients open a delivery on a phone first |
| Your archive copy is somewhere else | The delivery copy is not a backup |
Six lines, one link, one email. That is the whole delivery, and the client only ever has to keep track of one address.
Sources
- clientgallery.io product behaviour, plan price and limits, verified in the application code on 2026-09-07 (gallery hosting, proof compression, the 1,000-photo per gallery ceiling, the per-gallery full-resolution ZIP with its three-day window and 100 GB standing cap, the downloads toggle and the password gate).
- Google One plans and pricing, https://one.google.com/about/plans, fetched 2026-09-07 (Canadian storefront).
- Dropbox plans and pricing, https://www.dropbox.com/plans, fetched 2026-09-07 (Canadian storefront).
- Dropbox, Set shared link permissions, https://help.dropbox.com/share/set-link-permissions, fetched 2026-09-07.
Frequently asked
Can one link really serve both the gallery and the full-resolution files?
Yes. The client opens one address on your own subdomain. The page renders the proofs they browse, pick and share, and while a full-resolution ZIP is live for that gallery a second button on the same page hands over the full-size files. The client never needs a second link or a second set of instructions.
How long does the full-resolution download stay available?
Three days from the moment you upload the ZIP. Each upload restarts the clock. The gallery itself does not expire, so when the ZIP goes the client still has the same working link, minus the heavy download. You can re-upload the ZIP at any time to reopen the window.
What happens when a client asks for the files months later?
You upload the ZIP to the same gallery again and reply with the same link they already have. An account can hold 100 GB of live ZIPs at once and expired ones release their space, so re-issuing a delivery costs nothing but the upload time.
Does turning downloads off stop a client saving photos?
It stops the whole-gallery ZIP, which is refused on the server. It also hides the per-photo download button, but it does not make an individual proof URL unreachable. If you need a real barrier, set a gallery password: without it the page returns only the prompt, and the ZIP and the full-resolution handoff both refuse the request.
How many photos can one gallery hold?
1,000 photos per gallery. Photos are compressed in your own browser into proof JPEGs of roughly 0.6 MB each and are hosted for as long as your account exists. The full-resolution files travel separately, in the ZIP you upload for that gallery.
When should I use a shared cloud folder instead?
When the client genuinely needs permanent full-resolution access on demand rather than a handoff. A gallery with a three-day ZIP window is the wrong shape for that. A shared folder is the honest answer there, and it is cheap, but it gives you no proofing, no picks and no branding.
Your client galleries, under your name
Unlimited galleries, your branding, one-click Pixieset import, and a Lightroom plugin, all on a flat 10 $/month with everything included. Your first gallery is free.
Deliver your next shoot from one link