Skip to main content
Connect Fileloom to Amazon S3 to store generated PDFs in your own AWS infrastructure.

Prerequisites

Before connecting S3 to Fileloom, you need:
  1. An AWS account
  2. An S3 bucket created
  3. IAM credentials with appropriate permissions

Creating an S3 Bucket

If you don’t have a bucket yet:
1

Open S3 Console

Go to the AWS S3 Console.
2

Create Bucket

Click Create bucket.
3

Configure Bucket

  • Enter a unique bucket name
  • Select your preferred region
  • Keep “Block all public access” enabled (recommended)
4

Create

Click Create bucket.

Creating IAM Credentials

Fileloom needs IAM credentials with permission to upload files:
1

Open IAM Console

Go to the AWS IAM Console.
2

Create Policy

Go to PoliciesCreate policy and use the JSON below.
3

Create User

Go to UsersCreate user.
4

Attach Policy

Attach the policy you created to the user.
5

Create Access Key

Under the user’s Security credentials, create an access key for “Application running outside AWS”.
6

Save Credentials

Copy and securely store the Access Key ID and Secret Access Key.

Minimum IAM Policy

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "FileloomS3Access",
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:GetObject",
        "s3:DeleteObject"
      ],
      "Resource": "arn:aws:s3:::YOUR-BUCKET-NAME/*"
    }
  ]
}
Replace YOUR-BUCKET-NAME with your actual bucket name.
Never use root account credentials. Always create a dedicated IAM user with minimal permissions.

Connecting S3 to Fileloom

1

Open Workspace Settings

Click the settings icon in your workspace sidebar to open Workspace Settings.
2

Go to Integrations

Select Integrations from the left menu.
3

Click Connect on Amazon S3

In the Storage Integrations section, find Amazon S3 and click the Connect button.
4

Fill Out the Connection Form

Enter your S3 credentials and configuration (see fields below).
5

Click Connect

Click Connect to save. Fileloom automatically runs a connection test to verify your credentials and bucket access.
6

Connection Enabled

If the test passes, your S3 connection is approved and you’ll see a Connected badge next to Amazon S3.

Connection Form Fields

FieldDescriptionExample
Connection NameFriendly name for this connectionProduction S3
Bucket NameYour S3 bucket namemy-company-pdfs
RegionAWS region where bucket is locatedus-east-1
Access Key IDIAM access keyAKIA…
Secret Access KeyIAM secret keywJalr…
Path PatternFile organization patternpdfs///

AWS Regions

Common regions:
Region CodeLocation
us-east-1N. Virginia
us-west-2Oregon
eu-west-1Ireland
eu-central-1Frankfurt
ap-southeast-1Singapore
ap-northeast-1Tokyo

Configure Storage Mode

After connecting S3, configure how Fileloom uses it:
  1. In the Settings section below your connections, find Save on
  2. Choose your preferred mode:
ModeBehavior
FileloomPDFs saved to Fileloom only (S3 connection inactive)
ExternalPDFs saved to S3 only
BothPDFs saved to both Fileloom and S3

Path Pattern Examples

Organize files in your bucket using path patterns:
# By date
pdfs/{year}/{month}/{day}/{filename}
→ pdfs/2024/12/15/invoice-001.pdf

# By workspace
{workspace}/documents/{filename}
→ ws_abc123/documents/invoice-001.pdf

# By template type
generated/{template}/{year}-{month}/{filename}
→ generated/tpl_invoice/2024-12/invoice-001.pdf

# Flat structure with unique IDs
files/{fileid}.pdf
→ files/file_abc123xyz.pdf

URL Format

Files uploaded to S3 are accessible via presigned URLs:
https://my-bucket.s3.us-east-1.amazonaws.com/pdfs/2024/12/invoice.pdf?X-Amz-...
  • URLs are presigned for secure access
  • Default expiration: 24 hours
  • Included in API response as externalCopies[].url

Public Access (Optional)

If you need permanent public URLs instead of presigned URLs:
  1. Disable “Block all public access” on the bucket
  2. Add a bucket policy:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "PublicReadGetObject",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::YOUR-BUCKET-NAME/pdfs/*"
    }
  ]
}
Public buckets make all files accessible to anyone with the URL. Only enable if your use case requires it.

Managing Your Connection

After connecting, you can manage your S3 integration from the Integrations page:
  • Primary badge — If you have multiple storage connections, the primary one is used first
  • Connected / Inactive — Shows current connection status
  • Actions menu (⋮) — Edit credentials, run a new connection test, or disconnect

Troubleshooting

Access Denied

Symptoms: Connection test fails with “Access Denied” Solutions:
  • Verify Access Key ID and Secret Access Key are correct
  • Check IAM policy includes your bucket name
  • Ensure IAM user has the policy attached
  • Verify bucket region matches configuration

Bucket Not Found

Symptoms: Error mentions bucket doesn’t exist Solutions:
  • Check bucket name spelling (case-sensitive)
  • Verify bucket exists in the specified region
  • Ensure you have s3:GetBucketLocation permission if using a different region

Invalid Credentials

Symptoms: Authentication errors Solutions:
  • Regenerate access keys if expired
  • Check for extra spaces in credentials
  • Verify credentials are for correct AWS account

Upload Timeout

Symptoms: Uploads fail intermittently Solutions:
  • Check bucket region is geographically close to Fileloom servers (us-central1)
  • Verify no network restrictions on bucket
  • Check bucket isn’t near storage limits

Best Practices

Use Dedicated Credentials

Create IAM user specifically for Fileloom with minimal permissions

Enable Versioning

Turn on S3 versioning for accidental deletion protection

Set Lifecycle Rules

Configure automatic deletion of old files to manage costs

Monitor Usage

Set up CloudWatch alerts for unusual activity

Cost Considerations

S3 pricing factors:
  • Storage: ~$0.023/GB/month (varies by region)
  • PUT requests: ~$0.005 per 1,000 requests
  • GET requests: ~$0.0004 per 1,000 requests
  • Data transfer: First 100GB/month free, then ~$0.09/GB
For 10,000 PDFs averaging 100KB each:
  • Storage: ~1GB = ~$0.02/month
  • PUT requests: $0.05
  • Total: ~$0.07/month