Skip to main content

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.io is 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.

What's next