You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Clarify Vercel Blob is also a valid production backend (serves via proxy)
- Add per-service S3-compatible path-style guidance (R2 vs B2 vs Spaces)
- Make first resolve-blob-uris test explicitly set its mock (test isolation)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: agents-docs/content/deployment/add-other-services/s3-blob-storage.mdx
+8-7Lines changed: 8 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,7 +15,7 @@ When S3 is configured, media URLs in conversation responses are **presigned S3 U
15
15
-**Domain isolation** — media is served from `*.s3.amazonaws.com`, separate from your API domain
16
16
-**Time-limited access** — presigned URLs expire after 2 hours (configurable via `BLOB_STORAGE_PRESIGNED_URL_EXPIRY_SECONDS`)
17
17
18
-
When S3 is not configured, the framework falls back to the local filesystem with a server-side media proxy.
18
+
When S3 is not configured, the framework falls back to Vercel Blob (if `BLOB_READ_WRITE_TOKEN` is set) or the local filesystem. Both Vercel Blob and local storage serve files through a server-side media proxy rather than presigned URLs.
19
19
20
20
## Step 1: Create an S3 Bucket
21
21
@@ -61,12 +61,13 @@ All four variables are required when S3 is enabled.
61
61
62
62
### S3-Compatible Services
63
63
64
-
For S3-compatible services (Cloudflare R2, DigitalOcean Spaces, Backblaze B2), add:
64
+
For S3-compatible services, set `BLOB_STORAGE_S3_ENDPOINT` and enable path-style access where required:
@@ -86,7 +87,7 @@ The framework selects a storage backend based on which environment variables are
86
87
|---|---|---|
87
88
| 1 |**S3**|`BLOB_STORAGE_S3_BUCKET` is set |
88
89
| 2 |**Vercel Blob**|`BLOB_READ_WRITE_TOKEN` is set |
89
-
| 3 |**Local filesystem**| Neither is set (default) |
90
+
| 3 |**Local filesystem**| Neither is set (default, local dev only) |
90
91
91
92
<Callouttype="warning">
92
93
Changing the storage backend after files have been uploaded will make previously stored files inaccessible. Plan your storage backend before going to production.
0 commit comments