Upload files up to 200 GB with multipart support, real-time progress bars, and resume capability.
Upload any local file by providing its path. Supports drag-and-drop paths, quoted paths with spaces, and all file types.
Pass a URL instead of a file path. The CLI downloads the file to a temporary directory, uploads it, and cleans up automatically.
URL downloads are validated against blocked MIME types (executables, installers, etc.) to prevent uploading potentially dangerous files.
| Flag | Description |
|---|---|
-v, --verbose | Verbose output (SHA-256, chunk size) |
--json | JSON output for scripting and automation |
-p, --password <pass> | Password-protect the uploaded file |
--slug <slug> | Set a custom slug for the upload URL |
-e, --expires <time> | Set expiry time (e.g. 1d, 7d, 30d) |
Use --json for machine-readable output, ideal for scripting and CI/CD pipelines.
During uploads, an animated progress bar displays real-time status including speed, progress, and ETA.
If an upload is interrupted, it is saved as pending. You can list and resume pending uploads at any time.
The CLI verifies the file still exists and its size hasn't changed before resuming. If the file was modified, the resume will be rejected.
Large files are split into chunks and uploaded in parallel for maximum speed. Files are delivered from Cloudflare's global edge network for fast downloads anywhere in the world.