Cloud Storage Guide

Two cloud modes. One direct browser-to-S3 architecture.

webQsee's Cloud Gallery either runs on a bucket we manage for you in one of six AWS regions, or on a bucket you bring yourself (Amazon S3 or any S3-compatible storage like min.io). Either way, captures move directly from your browser to S3; metadata is the only thing on webQsee's servers.

Bring-your-own architecture: the browser uploads captures directly to your S3 bucket, webQsee backend only holds metadata, no payload access between backend and bucket
Bring-your-own architecture
Pick a mode

webQsee-provided vs Bring-your-own, at a glance.

webQsee-providedBring your own (S3_KEY)
Who pays the bucket billwebQseeYou (your AWS / min.io)
Available on Free tier 7-day trial, 5 items (paid only)
Item cap (Free / Professional / Small Team)5 / 20 / 40—/ no limit / no limit
Item lifetime (Free / Paid)7 days / 1 year (extendable)Unlimited (you control)
Geographic regionYou pick at provisioning (6 AWS regions)Wherever your bucket lives
Tenant isolationPath prefix in a shared bucketYour own bucket (full isolation)
Setup time~30 seconds, in-extension~15-25 min (one-off, see tutorials)
Audit logs of object accesswebQsee's S3 logs (not exposed)Your CloudTrail / min.io audit log
Encryption at restSSE-S3 by webQseeYou configure (SSE-S3, SSE-KMS, BYOK)
Custom retention / lifecyclePlan-driven (server-enforced)Your S3 lifecycle rules

One team, one storage. A team picks one of these modes at setup; you can't mix both for the same team. You can run multiple webQsee teams with different storage modes per team if you need.

Mode 1 · webQsee-provided

Cloud storage on Amazon S3, managed by us.

webQsee operates dedicated Amazon S3 buckets in six AWS regions. When you provision provided storage, the extension picks one of those regions; webQsee handles the bucket, IAM policies, encryption and lifecycle. You upload exactly as you would with your own bucket, the browser still talks directly to S3 over HTTPS, with short-lived presigned URLs minted by webQsee's backend.

webQsee-provided architecture: browser asks the webQsee backend for a presigned URL, backend returns one, the browser then uploads captures directly to a webQsee-operated S3 bucket in the chosen region; tenant isolation enforced via per-tenant path prefix
webQsee-provided architecture

How it works (legend for the diagram above)

  1. The extension asks webQsee's backend for a presigned upload URL.
  2. The backend validates your plan, tenant path prefix, and item caps, then mints a short-lived presigned S3 URL.
  3. The extension PUTs the capture bytes directly to S3 using that presigned URL. The bytes never traverse webQsee's backend.
  4. Metadata (title, status, owner) is stored in webQsee's EU backend, exactly like with bring-your-own.

Available regions

Pick the region closest to your team. You can run multiple webQsee teams in different regions, but a single team's storage lives in one region only.

RegionAWS codeBest for
🇪🇺 Europe (Frankfurt)eu-central-1EU customers, GDPR-conscious teams
🇺🇸 USA (Ohio)us-east-2North-American teams
🇨🇦 Canada (Central)ca-central-1Canadian residency requirements
🇯🇵 Japan (Tokyo)ap-northeast-1APAC, low-latency to Japan
🇦🇺 Australia (Sydney)ap-southeast-2Australia / NZ teams
🇧🇷 South America (São Paulo)sa-east-1LATAM teams
Data residency note: Provided storage is not automatically EU-only. The region you pick is where your data lives. Teams that must guarantee EU residency should pick eu-central-1. Teams that need provider-level full isolation should choose Bring-your-own.

Plan limits for provided storage

PlanMax itemsItem lifetimeTemporary share link
No account1 hour
Free Account5 (7-day trial)7 days, auto-deleted3 hours
Professional201 year, extendable24 hours
Small Team / Team40 / custom1 year, extendable24 hours

Item lifetimes are server-enforced. Free-account items are auto-deleted at the 7-day mark. Paid items can be extended past 1 year using a Longer Storage Booster. Item cap can be temporarily raised with a +5 cloud items booster.

What we can and can't see

In provided storage, webQsee operates the bucket so we technically have access to the S3 objects. We never read them in normal operation, but legally and architecturally we could. If that's a concern for your threat model, use Bring-your-own, where webQsee has zero technical capability to read your captures.

Mode 2 · Bring-your-own

Cloud storage on your bucket, your AWS bill, your full control.

Bring-your-own (mode S3_KEY in the extension) is the strongest privacy setup: webQsee never gets credentials to your bucket. The extension uses your Access Key ID + Secret to PUT and GET objects directly. webQsee's backend stores metadata only (item title, description, status, team membership), and physically can't access the payload because we don't hold the keys.

Bring-your-own architecture: browser uploads captures directly to your S3 bucket, webQsee backend only holds metadata, no payload access between backend and bucket
Bring-your-own architecture

What it works with

  • Amazon S3, any AWS region you choose
  • Self-hosted min.io, served over HTTPS with a publicly-trusted certificate
  • Other S3-compatible storage that supports SigV4 + path-style addressing

Plan limits

Bring-your-own is exclusive to paying customers. There are no webQsee-imposed item caps and no webQsee-imposed lifetimes; the bucket is yours.

PlanBYO availableItem capItem lifetime
Free Account
ProfessionalNo webQsee limitYou control (S3 lifecycle)
Small Team / TeamNo webQsee limitYou control

Setup paths

Amazon S3, simplified

One shared IAM user for the whole team. Easiest path; ideal for solo developers and small trusted teams.

15-min tutorial

Amazon S3, multi-user / RBAC

One IAM user per team member, tag-based folder isolation, per-user audit trail.

25-min tutorial

Self-hosted min.io

The same S3 protocol on hardware you control. Same bucket policy, plus two min.io-specific connection-settings keys.

25-min tutorial

Migrate / multi-team topologies

Switch from simplified to multi-user, share one bucket across teams, or split into per-team buckets.

All S3 tutorials

Security model

In BYO mode, webQsee never holds your bucket credentials. Each team member's Access Key + Secret are stored locally in their browser, encrypted in extension storage. webQsee's backend can't read them; you re-enter them on every device.

  • In transit: TLS 1.2+ on every S3 call; HTTPS enforced for min.io.
  • At rest: you pick SSE-S3, SSE-KMS or BYOK on the bucket.
  • Public access: tick "Block all public access" on the bucket; sharing uses presigned URLs created on demand by the extension.
  • IAM: use the published webqsee-bucket-rw policy template (scoped to one bucket, no s3:* on everything else).
Data flow

What ends up where, in both modes.

DataS3 bucketwebQsee backend (EU)Local IndexedDB
Behavior Report video (.webm)cache until upload
Behavior Report network/console (.bar)cache until upload
Event Snapshot (.esa)cache until upload
Full-page screenshot (PNG)cache until upload
Thumbnailscache
Item title, description, tags, statuscache
Team membership & ACLscache
Sharing link tokens
Your AWS Secret (BYO only)
webQsee's AWS Secret (provided only) (server-only)
No-install option

Recipients open shared captures at view.webqsee.com.

Both modes work transparently with the web client at view.webqsee.com. A shared cloud item carries a short token; the recipient signs into view.webqsee.com (or has it open already), the page fetches the metadata from webQsee, then pulls the capture bytes directly from S3 via a presigned URL (provided mode) or the user's own credentials (BYO).

Recipients never install anything for view-only access. Editors still need the extension.

Troubleshooting cheat-sheet

When something doesn't connect.

Bring-your-own

  • CORS error on PUT. Re-check the CORS configuration on the bucket. Methods must include PUT POST GET DELETE HEAD, expose ETag, allow your extension origin.
  • 403 Forbidden on PUT. IAM policy ARN doesn't match the bucket name, or the principal tag webqsee-user-id isn't set on the IAM user.
  • SignatureDoesNotMatch. Region mismatch between team-wide settings JSON and the bucket's actual region; or v2 instead of v4 signing on min.io.
  • net::ERR_CERT_AUTHORITY_INVALID (min.io). The cert must be trusted by every team member's browser; self-signed won't work cross-origin.
  • "This bucket must be addressed using the specified endpoint" (min.io). s3ForcePathStyle: true is missing from the connection settings.

webQsee-provided

  • "Trial expired" on a free account. Items in provided storage older than 7 days are server-deleted automatically. Upgrade to Professional to keep them.
  • "Item cap reached". Free 5 / Professional 20 / Small Team 40. Either delete some items, upgrade tier, or buy a +5 cloud items booster.
  • Long upload times. Pick a region closer to your team. Provisioning into the wrong region can only be fixed by switching the storage type (one team, one storage).
  • "Cannot create temporary storage". The self-hosted min.io provisioning tier was retired; create a new provided storage in a non-temporary region instead.

Stop guessing. Start webQseeing.

Add webQsee to Chrome or Edge in one click. Most features are free, forever, no signup needed. Upgrade only if your team needs cloud sharing, S3 storage and Pro-grade tooling.

Works in Chrome 103+, Edge 103+ and most Chromium-based browsers. Install instructions.