/// GUIDES / UPLOAD FILES
Upload files
storafleet gives you two ways to get objects into a Fleet. The default sends bytes straight from your browser to the bucket, and a fallback streams them through the server when direct uploads aren't available. Both paths work across every provider you can connect.
Two upload paths
- Direct-to-cloud (default) — the browser uploads straight to the bucket using presigned URLs. Bytes never transit storafleet's servers.
- Server-proxied fallback — when direct uploads aren't enabled, the file streams through the server on its way to the bucket.
Direct-to-cloud (default)
By default storafleet asks the bucket for a presigned URL and your browser uploads to it directly. The bytes go from your machine to the bucket — they never pass through storafleet's servers. The path it picks depends on file size:
- Files under 100 MiB upload in a single presigned
PUT. - Larger files use presigned multipart — the file is split into parts that upload in parallel and the transfer is resumable if a part fails.
Enable direct uploads
Direct-to-cloud uploads require CORS on the bucket so the browser is allowed to PUT to it. storafleet provides a one-click Enable direct uploads action that applies a safe CORS rule to the Fleet's bucket for you — no need to hand-edit JSON in the cloud console.
Server-proxied fallback
When direct uploads aren't enabled for a Fleet, storafleet uses the server-proxied path instead. The file streams through the server on its way to the bucket, so no CORS configuration is required. This is the safe default when you can't or don't want to modify the bucket's CORS rules.
Safe-upload protections
Regardless of which path is used, two protections run before the upload starts:
- Overwrite guard — storafleet won't clobber an existing object at the same key unless you confirm.
- Size check — the file size is validated before the upload is allowed to begin.