curl
curl is the easiest way to verify the Filebase S3 API is reachable, debug a signing issue, or run a one-off request without installing any S3-specific tooling.
Anonymous reads from public buckets
For public-bucket reads, no authentication is needed — curl works exactly like fetching any other URL:
curl -O https://my-public-bucket.s3.filebase.io/photo.jpg
curl -I https://my-public-bucket.s3.filebase.io/photo.jpg
# HTTP/2 200
# content-type: image/jpeg
# content-length: ...
Pre-signed URLs
The simplest way to make an authenticated curl call is to generate a pre-signed URL with the AWS CLI and then use curl as a dumb HTTP client:
url=$(aws --endpoint https://s3.filebase.io s3 presign s3://my-bucket/private.pdf)
curl -O "$url"
For uploads:
url=$(aws --endpoint https://s3.filebase.io s3 presign s3://my-bucket/upload.bin --method PUT)
curl -X PUT --upload-file ./local.bin "$url"
Signing manually
For tooling that needs to sign requests directly (CI scripts without the AWS CLI installed, language environments without a maintained SDK), you can compute the SigV4 signature in shell. This is verbose — most users prefer to install the AWS CLI or use a small SDK call instead. The full AWS-published SigV4 reference is at docs.aws.amazon.com/general/latest/gr/sigv4_signing.html.
A working bash implementation is available in aws-sig-v4-bash and similar projects on GitHub.
When to use curl
- Verifying that
s3.filebase.iois reachable from a host (firewall debugging). - Quick downloads from public buckets in scripts that don't have an S3 client.
- Troubleshooting CORS preflight responses (
curl -X OPTIONS -H "Origin: ..."). - Calling pre-signed URLs from environments where you don't want to install an S3 client.
For anything more involved, an SDK or the AWS CLI is the better choice.