Links

S3-Compatible API

Learn about Filebase’s S3-compatible API for seamless integration with existing data management tools and frameworks.
Filebase’s S3-compatible API can be used by several standardized S3-compatible frameworks, tools, clients, and SDKs to manage data stored through Filebase.
Filebase has certified several of these tools for use with the platform. Filebase certification consists of putting software tools through testing procedures to validate conformity with the Filebase S3-compatible API.

API Endpoint

The Filebase S3-compatible API endpoint URL is:
https://s3.filebase.com

Access Keys

To use the Filebase S3-compatible API, you will need to have your Filebase Access and Secret key pair to submit API requests.
To view the access key for your Filebase account, start by clicking on the ‘Access Keys’ option from the menu to open the access keys dashboard.
Here you can view the access keys for your account. Each access key has two parts, the key and the secret associated with the key. The access key dashboard will also provide information such as the time and date the access key was created and its current status.
To use access keys, you will need to have both the key and the secret associated with that key.

Authentication

The Filebase S3-compatible API only supports AWS v4 signatures (AWS4-HMAC-SHA256) for authentication and does not support AWS v2 signatures at this time. To learn more about S3 authentication, see this article.

HTTPS Protocol

Filebase maintains a strict HTTPS-only standard. This means objects and API calls are served only via HTTPS. The port for this connection is the HTTPS standard port 443.
It is not possible to disable this at this time. Requests sent via the HTTP protocol will be redirected to HTTPS.

Rate Limit

The Filebase S3 API has an effective rate limit of 100 RPS (requests per second).

Supported API Methods

The list below documents Filebase's currently supported S3 API methods.
AbortMultipartUpload
Cancels a multipart upload. Once aborted, the upload is canceled and no additional parts can be uploaded using the original upload ID. Any of the parts that were uploaded prior to the cancellation will be deleted.
CompleteMultipartUpload
Completes a previously initiated multipart upload by assembling previously uploaded parts.
CopyObject (Temporarily disabled)
Used to create a duplicate copy of an existing object. This method is currently disabled.
CreateBucket
Creates a new Filebase bucket. By default, this bucket is created on the IPFS network.
CreateMultipartUpload
Initiates a multipart upload which returns a unique upload ID value. This ID value is used to identify all parts of the multipart upload.
DeleteBucket
Removes the specified bucket from Filebase. The bucket must be empty before it can be removed.
DeleteBucketCors
Removes the current CORS policy set on the specified Filebase bucket.
DeleteObject
Removes an object from being stored on Filebase.
GetBucketAcl
Returns the specified bucket’s currently configured access control list.
GetBucketCors
Returns the specified bucket’s current CORS policy.
GetBucketLifecycle
Returns the specified bucket’s current lifecycle configuration.
GetBucketLifecycleConfiguration
Returns the specified bucket’s current lifecycle configuration.
GetBucketLocation
Returns the region of the specified bucket.
GetBucketLogging
Returns the current logging status of the specified bucket.
GetBucketVersioning
Returns the current versioning state of the specified bucket.
GetObject
Retrieves the specified object(s) from Filebase.
GetObjectAcl
Retrieves the current access control list configuration for the specified object.
HeadBucket
Used to determine if the specified bucket exists.
HeadObject
Used to determine if the specified object exists.
ListBuckets
Lists all current buckets on your Filebase account.
ListObjects
Lists all current objects within the specified bucket. Maximum return of 1,000 objects.
ListObjectsV2
Lists all current objects within the specified bucket. Maximum return of 1,000 objects. The newest version of ListObjects, and recommended for new workflows.
PutBucketAcl
Used to configure the access control list permissions on the specified bucket.
PutBucketCors
Used to configure the CORS policy on the specified bucket.
PutObject
Used to upload an object to the specified bucket.
PutObjectAcl
Used to configure the access control list permissions on the specified object.
UploadPart
Used to upload a part from a multipart upload using the upload’s unique ID value.
When a response payload is present, all responses are returned using UTF-8 encoded XML.

Pre-signed URLs

The Filebase S3-compatible API supports pre-signed URLs for downloading and uploading objects. Pre-signed URLs can be generated in a number of ways including the AWS CLI and the AWS SDKs.
For more information on Pre-signed URLS, see our guide here.

Access Control Lists (ACLs)

The Filebase S3-compatible API features limited support for Access Control Lists (ACLs). Object-level ACLs are currently not supported.
The GetObjectAcl and GetBucketAcl methods will work as expected, but the GetObjectAcl response will return the ACL of the bucket that the object is contained in.
This design eliminates the possibility of a user accidentally making an object public within a private bucket. If a mix of private and public objects is required for your workflow, you can simply create two different buckets.
For information on how to create a Filebase bucket, see here.
If you have any questions, please join our Discord server, or send us an email at [email protected]