Skip to content
Studio Integrations & Export

ZIP Archiving & Templates

Multi-gigabyte export pipelines, memory-efficient streaming ZIP generation, and custom filename templates.

Studio-Scale Export Infrastructure

Exporting hundreds of high-resolution images or large XMP archives in standard web applications often triggers browser memory crashes or serverless timeout errors.

BestShots manages exports through dedicated Azure Function workers (processExport.ts) equipped with memory-optimized streaming archivers.


Streaming ZIP Engine Architecture

  • Chunked Memory Buffers: Instead of loading gigabytes of raw image bytes into server RAM, the export processor streams files in dynamic 100MB batch windows.
  • Direct SAS Delivery: Once the ZIP archive is finalized, a secure download link is generated pointing directly to Azure CDN storage.
  • Telemetry & Progress: The in-app Export Progress Modal tracks batch completion percentage, processed photo counts, and throughput speed in real time.

Custom Filename Template Variables

Studios can configure standardized naming conventions using pattern tokens:

TokenDescriptionExample Output
{originalName}Exact original camera filename stem (Recommended for RAW XMP)080A0386, _DSC1042
{project}Project titleMiller-Wedding
{date}Capture date (YYYYMMDD)20260907
{index}Sequential zero-padded index001, 002
{filename}Legacy filename stem alias_DSC1042
{rating}Assigned star rating5Star
{decision}Culling statusKEEP, REJECT

Naming Rules: RAW XMP Bundles vs. Converted Raster Exports

When configuring naming templates, consider the intended destination of your export:

1. RAW XMP Workflow Bundles (Strict Original Filename Pairing)

When exporting an XMP Sidecar & Workflow Bundle (.zip) for camera RAW shoots, the Export Settings interface automatically defaults to Keep Original Camera Filenames ({originalName}).

Preserve Camera Filenames for Catalog Sync

Desktop RAW developers (Adobe Lightroom Classic, Capture One Pro, and Adobe Bridge) link sidecars strictly by matching base filenames (e.g. 080A0386.CR3 requires 080A0386.xmp). Renaming sidecars to sequential templates like {project}_{index} breaks local catalog pairing and stops 1-click organizer scripts from finding the master RAW files on disk.

2. Converted Raster Exports & Client Deliverables

When exporting converted JPEGs, PNGs, or WebP files for client proofing or web delivery, sequential naming is recommended:

  • Example: {project}_{date}_{index} renders as Miller-Wedding_20260907_001.jpg.
  • Example with decision: {project}_{index}_{decision} renders as Miller-Wedding_001_KEEP.jpg.