How to configure AWS S3 as a Cloud Object Store

  1. Create an AWS bucket and give it a name --- eg: "mytestbucket"

  2. Add an IAM user – eg: "AppSheetS3User". Make sure to record the API access key and access secret for this user.

  3. Give your S3 bucket a permissions policy like this (change the Id and Sid to some unique value):

"Version": "2012-10-17",
"Id": "Policy1490153669091",
"Statement": [
 "Sid": "Stmt1490216152721",
 "Effect": "Allow",
 "Principal": {
  "AWS": "arn:aws:iam:::user/AppSheetS3User"
 "Action": "s3:*",
 "Resource": "arn:aws:s3:::mytestbucket/*"

How to configure your AppSheet account

Once you have your S3 bucket configured, you are ready to configure your AppSheet account.

  1. Go to your Account page and the Integrations tab within it. 

  2. Choose the “Stores” sub-pane. 

  3. Click on Add Object Store. It will show an S3 logo. Click on that. 

  4. This brings up a form to fill out. Give your object store a name --- eg: “S3Store”. Carefully choose the AWS Region, and provide the BucketName ("mytestbucket"), Access Key and Access Secret.

  5. Save.

This page should now show that your account has one configured Cloud Store.

How to configure an individual table in an app

Once you have added a cloud object store to your account, you can decide to use it for any specific table in any specific app.

  1. Go to a table definition in the app editor (via the Data -> Tables pane).

  2. In the properties, look for "Cloud Object Store" and type in the name of the object store that you set up for your account (eg: “S3Store”).

  3. Save the change

Using apps with cloud object stores

Apps work without any difference in behavior. If your app is used to capture images, you will find that the images are saved to the S3 bucket. The object names in S3 are similar to file path names and use the same protocol. To disambiguate, they are always prefixed with the source name of the table that they belong to.

Did this answer your question?