Upload & Download
Sairo supports uploading and downloading objects directly through the browser UI.
Upload
Section titled “Upload”Drag and drop
Section titled “Drag and drop”Drag files from your desktop or file manager and drop them anywhere on the object browser. Sairo will upload them to the current folder.
Multi-file batch upload
Section titled “Multi-file batch upload”You can drop multiple files at once or use the upload button to select several files from the file picker. All selected files are uploaded in parallel.
Direct browser-to-S3 upload
Section titled “Direct browser-to-S3 upload”Since v3.4.0, uploads go directly from your browser to the S3 endpoint — the file data does not pass through the Sairo server. Sairo only issues short-lived presigned URLs; the bytes flow browser → S3.
- Small files (≤ 100 MB) upload with a single presigned
PUT. - Large files (> 100 MB) use presigned multipart upload: the browser splits the file into parts and uploads them to S3 in parallel, each part signed just-in-time so a long transfer never fails on an expired URL. There is no single-PUT size ceiling — you can upload files far larger than before (up to S3’s 5 TB object limit). A progress bar (with ETA) tracks the whole file, and an in-progress upload can be Stopped, which aborts the multipart upload on S3 so no orphaned parts are left behind.
Because no file data is buffered on the server, large uploads no longer cause memory pressure or pod restarts at scale.
Proxy fallback
Section titled “Proxy fallback”If direct upload isn’t available (for example a restricted environment that blocks the browser→S3 request), Sairo falls back to a proxy upload through the server. This path now streams each file straight to S3 instead of buffering it in memory, so peak memory is bounded (~100 MB per in-flight file regardless of file size) rather than growing with the file. Concurrency is controlled by UPLOAD_PROXY_CONCURRENCY (default 3). You can also toggle proxy upload manually with the Direct upload checkbox in the upload dialog.
Download
Section titled “Download”Presigned URLs
Section titled “Presigned URLs”When you download an object, Sairo generates a presigned URL and redirects your browser to it. The file downloads directly from S3 without proxying through the Sairo backend, which keeps downloads fast and avoids putting load on the application server.
Configurable expiration
Section titled “Configurable expiration”Presigned download URLs support configurable expiration times:
| Option | Expiration |
|---|---|
| Default | 1 hour |
| Extended | 24 hours |
| Long | 7 days |
Choose the expiration that fits your use case. Shorter expirations are more secure; longer expirations are convenient when sharing a link that someone may not access immediately.