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 hello@filebase.com

Last updated