File Path Templates
File path templates control how files are organized in your S3 bucket. A single template determines the S3 key structure — used for both saving and reading files.
Where to Configure
| Level | Where | Applies to |
|---|---|---|
| Workspace | Admin > Workspace Settings > Storage | All files in the workspace (default) |
| View | Spread > View Properties | All files in that view |
| Column | Spread > Column Properties | Files in that specific column |
Resolution Hierarchy
The most specific template wins:
- Column-level template (if set)
- View-level template (if set)
- Workspace-level template (if set)
- Default —
files/${fileId}.${ext}
Available Variables
| Variable | Description | Example |
|---|---|---|
${fileId} | Generated file UUID | f9e8d7c6-1234-5678-abcd-ef0123456789 |
${fileName} | Original file name | image.png |
${baseName} | File name without extension | image |
${ext} | File extension (without dot) | png |
${workspace.uuid} | Workspace UUID | a1b2c3d4-... |
${workspace.slug} | Workspace slug | acme-corp |
${view.uuid} | View UUID | e5f6a7b8-... |
${view.slug} | View slug | clients |
${column.uuid} | Column UUID | c9d0e1f2-... |
${column.name} | Column field name | avatar |
${value} | The current cell's raw value | invoice.pdf |
${row.column_name} | Value from another column in the same row | 42 |
${row.column_name:fallback} | Column value with a default if null | us-east |
Row variables (${row.*} and ${value}) resolve from the row data when reading files. At upload time, ${fileId}, ${fileName}, ${baseName}, ${ext}, and the workspace/view/column variables are available.
Examples
${view.slug}/${column.name}/${fileId}.${ext}
→ clients/avatar/f9e8d7c6-1234-5678-abcd-ef0123456789.png
uploads/${workspace.slug}/${fileName}
→ uploads/acme-corp/image.png
clients/${row.client_id}/${value}
→ clients/42/headshot.jpg
invoices/${row.region:default}/${row.invoice_number}.pdf
→ invoices/eu-west/INV-2026-001.pdf
→ invoices/default/INV-2026-001.pdf (when region is null)Tips
- Include
${fileId}to guarantee unique file names and avoid overwrites. - Use
${view.slug}and${column.name}to organize files by view and column. - Use
${row.column_name}to build paths from your existing data — useful when your S3 bucket already has a folder structure based on record values. - The
${row.column_name:fallback}syntax provides a default value when a column is null, preventing broken paths. - Security: path traversal (
..) and absolute paths (/) are automatically blocked.