v0.1.0 · MIT

PhotoSync

Portable USB-to-cloud photo & video catalog. The flash drive is your preview library; the cloud holds the originals.

MIT licensed·Python 3.11+·single binary·82 passing tests

Why

You want your photos in the cloud, but you also want to carry a flash drive that previews them all — without filling 1 TB of storage on a 64 GB stick. PhotoSync uploads originals to your cloud and leaves a 100 KB thumbnail with the cloud URL in its place. Click any thumbnail in the on-drive HTML gallery → the full-resolution original opens from the cloud. Offline? You still see every preview.

Catalog mode

What ends up on the drive

Before 10 GB of photos
D:\
└── 📁 PhotoSync\
    └── 📁 2024-Trip\
        ├── IMG_0001.jpg   (4.8 MB original)
        ├── IMG_0002.jpg   (5.1 MB original)
        └── clip.mp4       (320 MB)
⬆️  upload & replace  ↓
After catalog sync ~50 MB on drive · 5+ TB browsable
D:\
├── PhotoSync.exe
└── 📁 PhotoSync\
    └── 📁 2024-Trip\
        ├── IMG_0001.jpg          (100 KB thumbnail, cloud URL in EXIF)
        ├── IMG_0002.jpg          (100 KB)
        ├── clip.mp4.preview.jpg  (video frame stub)
        └── index.html            ← open this → clickable gallery

Originals live in the cloud. Click any thumbnail to fetch them.

What you get

Built like a tool, not a service

01 Two sync modes

Backup keeps originals on the drive. Catalog replaces them with thumbnail-with-URL stubs and generates an HTML gallery.

02 Selective sync

Only files inside <drive>/PhotoSync/ are touched. Other folders on the drive are left alone.

03 SHA-256 deduplication

Content-addressed, not filename-addressed. Renames don't trigger re-uploads. A local scan cache means unchanged files aren't re-hashed.

04 70+ cloud providers

Bundled rclone handles transport. Google Drive, Dropbox, OneDrive, and any S3-compatible store (Backblaze B2, Cloudflare R2, Wasabi, MinIO, …).

05 Encrypted credentials

Master-password-encrypted tokens never leave the drive in plaintext. Lose the drive, lose nothing.

06 Zero installation

Single ~55 MB executable. Runs straight from the USB. No installers, no admin rights, no left-behind registry keys.

Quick start

Three steps

  1. From the Releases page download the file for your OS — PhotoSync-windows.exe, PhotoSync-macos, or PhotoSync-linux — and copy it to your flash drive. (Skip "Source code (zip)" — that's the repo.)
  2. Double-click it. The setup wizard walks you through picking a cloud, authenticating, and setting a master password. Unsigned-binary warnings (Windows SmartScreen, macOS Gatekeeper) are expected — see the README for the one-line fix on each OS.
  3. PhotoSync opens the PhotoSync/ folder for you. Drop in your photos and press Start.

After the sync finishes, double-click PhotoSync/index.html to browse the catalog in your browser.

No data loss

PhotoSync uploads first, then replaces. If an upload fails, the original is never touched. Stub recognition is double-layered (SQLite content-hash dedup + EXIF marker check), so even a wiped database can't trick the app into re-uploading or destroying a stub.