Upload files — images, videos, documents

Last updated: May 19, 2026

Upload files — images, videos, documents

Drag-drop files onto the Creative Hub grid OR click Upload in the toolbar. Files are stored in Google Drive via the workspace's Service Account; metadata recorded in Wevion's creative_hub_file records. First upload triggers ensureUserFolder() which auto-creates your root folder. Thumbnails generated on demand (see ch-110).

Who is this for

Anyone adding new creative assets — designers uploading PSD exports, mediabuyers dropping in stock images, agencies uploading client-provided footage.

Supported file types

Category

Formats

Use case

Images

PNG, JPG, JPEG, WebP, GIF

Static ad creatives, thumbnails, source for compositing

Videos

MP4, MOV, WebM

Video ads, B-roll for compositing

Documents

PDF

Briefs, reference docs, contracts

Other types may upload but won't render in the preview / picker.

How to upload

Method 1: Drag-drop

  1. Open /creative-hub (or a specific folder)

  2. Drag files from your file manager onto the grid

  3. A drop zone overlay appears

  4. Release → upload starts

Multi-file drop supported.

Method 2: Upload button

  1. Top toolbar → Upload

  2. File picker opens

  3. Pick one or more files

  4. Confirm

Method 3: Folder picker (subfolder)

Navigate into the target folder first → then upload. Files land in the current folder, not the root.

What happens during upload

For each file:

  1. Wevion frontend uploads to backend

  2. Backend writes to Drive via Service Account

  3. creative_hub_file record created with metadata (name, size, type, drive_id, owner_session_id)

  4. Thumbnail generation triggered (lazy — first preview request runs FFmpeg if needed)

  5. UI: file appears in grid with progress indicator → finalized

Upload progress shown per file. Network interruption: failed uploads visible with retry option.

Limits

  • Per-file size: limit enforced server-side (typically 100 MB for video, 25 MB for image). Exceeded files rejected with clear error.

  • Total storage: workspace-wide quota; see /settings/team/billing for usage.

  • Concurrent uploads: 5-10 parallel typical (browser-side limit).

For very large videos: compress before upload (e.g. HandBrake to 1080p H.264) — keeps storage costs down + speeds up serving.

Where files land

  • Root upload: /creative-hub (your user root)

  • Inside folder: into that folder

  • Team folder: into the team folder you're viewing (RBAC permits)

First upload triggers ensureUserFolder(userId) which creates your Drive root if missing.

First-upload setup (auto)

If you're a new user uploading for the first time:

  • Wevion creates your root folder on Drive (Service Account owns it)

  • Maps the Drive folder ID to your user_session

  • Future uploads go into this root by default

No manual setup needed. If a teammate set up your team folder structure earlier, ask them about folder conventions first.

RBAC + sharing

By default: only you (the uploader) + admins/owners can see your files. To share with teammates:

  • Use team folders workflow (see ch-104)

  • Or share externally via Drive permissions (see ch-105)

See ch-127 creative permissions for the full RBAC model.

Audit log

Uploads write action: creative_upload entries to the audit log with metadata (file_id, name, size, folder_id). Visible in /api/v1/audit-logs?resource_type=creative_hub_file.

Common issues

  • Upload stuck: network interruption or Drive quota; check connection + check /settings → Integrations → Google Drive for quota status

  • File rejected (size): exceeds per-file limit; compress + retry

  • File rejected (type): format not supported; convert to a supported type

  • No thumbnail after upload: thumbnail generated lazily on first preview request; click the file to trigger generation (may take 5-30 sec for video)

  • Drive permission error: Service Account credentials may have expired / been rotated; ask admin to check /settings → Integrations → Google Drive connection status

Related