Storage

Set up custom storage backends for your uploaded files.

Cloud Storage

By default, Filestack stores uploaded files to an internally managed S3 bucket. If you already have a cloud storage solution in place and would like to integrate it with Filestack, we allow that as well. To do this, simply log in to the Filestack Developer Portal and provide credentials of the service you’d like to use as your storage provider.

Currently, we support many of the world’s largest cloud storage platforms:

  • Amazon S3
  • Rackspace
  • Azure Blob Storage
  • Dropbox
  • Google Cloud Storage

All storage options require a paid plan.

Storage Aliases

Storage aliases are a premium feature that allow you to use Filestack transformations and other add-ons with files not uploaded through Filestack. Storage aliases can be used with any of our supported cloud storage providers and, once configured, work as any other Filestack URL but require prepending your API key to the alias:

https://cdn.filestackcontent.com/APIKEY/src://STORAGE-ALIAS/PATH-TO-YOUR-FILE

Please contact sales if you are interested in setting up storage aliases for your application.

Amazon S3

Using Amazon S3 as a storage backend is easily configured by providing your Amazon Access Key and Secret Access Key in the developer portal.

IAM Setup

It is highly recommended that you create a new IAM user to interface with Filestack. That user should be configured with the following IAM policy, replace YOUR_BUCKET_NAME with the name of your bucket:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:DeleteObject"
             ],
             "Resource": "arn:aws:s3:::YOUR_BUCKET_NAME/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets",
                "s3:GetBucketLocation"
            ],
            "Resource": "arn:aws:s3:::*"
        }
    ]
}

Javascript SDK

If you are uploading to your own S3 bucket from a browser using our Javascript SDK, then you need to configure your bucket’s CORS policy to allow cross-origin requests:

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <AllowedMethod>PUT</AllowedMethod>
        <AllowedMethod>POST</AllowedMethod>
        <MaxAgeSeconds>3000</MaxAgeSeconds>
        <ExposeHeader>ETag</ExposeHeader>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
</CORSConfiguration>

It is recommended to replace the wildcard in <AllowedOrigin>*</AllowedOrigin> with your own domain.

Content Ingestion Network

This is also required for using Intelligent Ingestion with your own S3 bucket.

The Content Ingestion Network utilizes an array of global edge servers that serve as shortest-hop points for you and your customer’s upload requests. This is made possible by the availability of our services across AWS regions. If this feature is enabled on your application, your S3 bucket must give access to the Filestack IAM user in order for files to make it from edge nodes to your bucket. Please use the following bucket policy, replacing YOUR_BUCKET_NAME appropriately:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "",
            "Principal": {
                "AWS": "arn:aws:iam::593058860426:user/filestack-uploads"
            },
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::YOUR_BUCKET_NAME/*"
        }
    ]
}

Azure

You can add an Azure container in the Filestack Developer Portal from your Azure Storage Account, you just need your Storage Account key and the name of the container. You can read here about how to obtain your Azure Storage Access Keys.

Google Cloud Storage

Filestack can connect to a GCS bucket via a service account key.

Read here to learn about creating Google Cloud service accounts.

Make sure your service account role is Storage Object Admin. Get the JSON key for this account and paste it into the Access Key field in the GCS section of the developer portal.

Dropbox

You need an existing Dropbox application or you can create a new one.

1. Make sure to enable additional development users:

2. Generate an OAuth2 access token that will be added to the Dropbox storage section in the developer portal.