A storage bucket is a good home for an Airtable backup when you want full control over where the copy lives, how long it's kept and who can delete it. KeepMyBase writes to Amazon S3, Cloudflare R2, Wasabi, Backblaze B2, DigitalOcean Spaces, and MinIO or other S3-compatible storage on a public HTTPS address. Most Airtable backup tools only write to Google Drive, Dropbox, OneDrive or Box, or keep the copy on their own servers.
Why a bucket instead of Google Drive
- Your rules for keeping data. Lifecycle rules, versioning and object lock let you decide how long copies last, independent of the backup tool. With object lock, nobody can delete a copy before its date, including the backup tool and anyone using its key.
- Region and compliance. You choose the bucket's region and account, and the data never sits in a shared consumer account.
- Large attachment volumes. Buckets have no account-wide quota shared with email and photos. Pricing is per gigabyte stored, plus requests, and R2 doesn't charge for downloads.
- Separate access. The backup's key can be limited to one bucket, or one folder in it, and replaced at any time.
Step 1: create a private bucket
Create a bucket at your provider and keep public access blocked. The backup never needs public access. Use a dedicated bucket for backups if you can; it makes permissions and lifecycle rules simpler.
Step 2: create a key for the backup only
Never use a root or account-wide key.
- Amazon S3: create an IAM user with a policy limited to the bucket and a folder prefix such as
keepmybase. The archive guide shows the exact policy KeepMyBase needs: reading, writing, listing and deleting objects under that prefix, and cleaning up incomplete uploads. - Cloudflare R2: create an Object Read & Write API token limited to the one bucket. R2 tokens cover a whole bucket, so give the backup its own.
- Wasabi, Backblaze B2, DigitalOcean Spaces: create an access key limited to the bucket.
The backup needs to delete objects so it can remove old copies when your retention period ends and clean up after an interrupted run. If you'd rather nothing is ever deleted, leave retention off in KeepMyBase or turn on object lock in the bucket.
Step 3: connect the bucket
In KeepMyBase, open Connections and choose Add storage destination. Select the provider and enter:
- the S3 endpoint (for R2, the account's S3 API endpoint; for AWS, the bucket's regional endpoint);
- the bucket name and region (R2 uses
auto); - a folder prefix such as
keepmybase; - the access key ID and secret.
Choose Test and save connection. KeepMyBase writes a test file, reads it back, lists it, uploads a file in parts, cancels an unfinished upload and deletes the test files: every operation a backup uses. If a step fails, the message names it, so you can fix the permission or endpoint before the first backup runs.
Step 4: create the backup
Connect Airtable, choose the base and pick the bucket as its destination. The first copy starts within a few minutes. After it completes, turn on the daily schedule and choose how long to keep older copies: up to 30 days on Starter, 90 on Growth and 180 on Business. The Business plan can also send each base to two destinations, for example Google Drive and R2.
What the archive looks like
Each backup's copies are stored under <prefix>/captures/<backup>/:
- one folder per copy, with
records.csvandrecords.jsonfor every table (record IDs included),schema.jsonwith the fields and field types, andmanifest.jsonwith record counts and checksums; - a shared
files/folder with the attachment files. Each file is uploaded once and later copies refer to it, so daily backups don't store the same unchanged file again.
Every copy is read back and checked against its checksums before it's marked complete.
Versioning, object lock and lifecycle rules
- Versioning keeps deleted copies as older versions. Retention in KeepMyBase then hides old copies without freeing space; add a lifecycle rule that expires noncurrent versions.
- Object lock prevents deletion until the lock expires. KeepMyBase never bypasses a lock.
- Lifecycle rules you set at the provider can remove old copies on their own schedule. Also add a rule that aborts incomplete multipart uploads after a few days.
Your provider bills storage and requests directly. For recovering a base from the archive, see how to restore Airtable from a backup.