Back to Activepieces

File Storage & Signed URLs

docs/resources/diagrams/file-storage-signed-urls.html

0.86.01.2 KB
Original Source

File Storage & Signed URLs

Where files live, and how workers & browsers move bytes straight to S3 — without proxying through the app

1 · Signed-URL flow — the app never proxies file bytes

Worker

Writes run logs & step files

Browser

Views logs & downloads files

App

Mints signed URLs, returns a 307 redirect

Amazon S3

private bucket

ask → 307 + signed URL

ask → 307 + signed URL

upload bytes → presigned PUT

download bytes → presigned GET

2 · What's stored where

Execution data · expires, auto-cleaned

run logs · log slices · step files · trigger & webhook payloads · flow bundle

Permanent · kept until deleted

platform assets · profile pictures · sample data · package archives · project releases · flow-version backups · knowledge base

Amazon S3

PostgreSQL

bytea

AP_FILE_STORAGE_LOCATION=S3

or DB (default)

always Postgres

Opt-in: set AP_FILE_STORAGE_LOCATION=S3 + AP_S3_USE_SIGNED_URLS=true. Self-host defaults to Postgres. Presigned URLs expire in 7 days (configurable).

The app issues a JWT read-link /v1/files/:id?token that 307-redirects to the S3 presigned URL. Worker-writable: run logs, log slices, step files. Without signed URLs the app proxies bytes (Worker → App → S3).