How to Set Up Cloud Storage in Snapzy

How to Set Up Cloud Storage in Snapzy ☁️
Snapzy's cloud storage feature lets you automatically upload screenshots to your own cloud bucket and instantly copy a shareable link to your clipboard. No third-party image hosting — you own your data.
This guide walks you through configuring either AWS S3 or Cloudflare R2 as your cloud provider.

Prerequisites
Before you start, make sure you have:
- Snapzy v1.4.0+ installed on your Mac
- An AWS account (for S3) or a Cloudflare account (for R2)
- A bucket created with public read access (or a custom domain) so uploaded files are accessible via URL
Option A: AWS S3 Setup
Step 1 — Create an S3 Bucket
- Sign in to the AWS Management Console
- Click Create bucket
- Enter a bucket name (e.g.,
my-snapzy-uploads) - Choose a region (e.g.,
us-east-1) - Uncheck "Block all public access" — you need public read access for shareable links
- Click Create bucket
Tip: If you prefer not to make the entire bucket public, you can use a CloudFront distribution or signed URLs with a custom domain instead.
Step 2 — Set a Bucket Policy
Add this bucket policy to allow public read access on the snapzy/ prefix:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadSnapzy",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::YOUR_BUCKET_NAME/snapzy/*"
}
]
}
Replace YOUR_BUCKET_NAME with your actual bucket name.
Step 3 — Create IAM Credentials
- Go to the IAM Console
- Create a new IAM user or use an existing one
- Attach a policy with the following permissions:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject",
"s3:GetBucketLifecycleConfiguration",
"s3:PutBucketLifecycleConfiguration",
"s3:DeleteBucketLifecycleConfiguration",
"s3:HeadBucket"
],
"Resource": [
"arn:aws:s3:::YOUR_BUCKET_NAME",
"arn:aws:s3:::YOUR_BUCKET_NAME/*"
]
}
]
}
- Generate an Access Key ID and Secret Access Key — save these securely
Step 4 — Configure in Snapzy
Open Snapzy → Preferences → Cloud tab and fill in the form:

| Field | Value |
|---|---|
| Provider | AWS S3 |
| Access Key ID | Your IAM access key |
| Secret Access Key | Your IAM secret key |
| Bucket Name | Your S3 bucket name |
| Region | The region you chose (e.g., us-east-1) |
| Endpoint | Leave empty for standard S3 (or enter a custom endpoint for S3-compatible services) |
| Custom Domain | (Optional) Your CloudFront or custom domain |
Click Save & Test — Snapzy will validate your credentials and set up a lifecycle rule for auto-expiration.
Option B: Cloudflare R2 Setup
Step 1 — Create an R2 Bucket
- Sign in to the Cloudflare Dashboard
- Go to R2 Object Storage in the sidebar
- Click Create bucket
- Enter a bucket name (e.g.,
snapzy-uploads) - Click Create bucket
Step 2 — Enable Public Access
To make uploaded files accessible via URL, you need to set up either:
- R2.dev subdomain — In the bucket settings, enable the
r2.devpublic URL (quick and easy) - Custom domain — Connect your own domain under Settings → Public access → Custom Domains
Note: For production, a custom domain is recommended. The
r2.devsubdomain has rate limits.
Step 3 — Generate API Tokens
- In the Cloudflare Dashboard, go to R2 Object Storage → Overview
- Click Manage R2 API Tokens
- Click Create API token
- Set permissions to Object Read & Write for your bucket
- Copy the Access Key ID and Secret Access Key
- Note your Account ID — you'll need it for the endpoint URL
Your R2 endpoint format is:
https://<ACCOUNT_ID>.r2.cloudflarestorage.com
Step 4 — Configure in Snapzy
Open Snapzy → Preferences → Cloud tab and fill in the form:

| Field | Value |
|---|---|
| Provider | Cloudflare R2 |
| Access Key ID | Your R2 API token access key |
| Secret Access Key | Your R2 API token secret key |
| Bucket Name | Your R2 bucket name |
| Endpoint | https://<ACCOUNT_ID>.r2.cloudflarestorage.com |
| Custom Domain | Your public access domain (e.g., cdn.example.com) |
Click Save & Test — Snapzy will validate the connection and configure lifecycle rules.
Configure File Expiration
Snapzy supports automatic file expiration using S3/R2 lifecycle rules. You can choose from:
| Duration | Description |
|---|---|
| 1 day | Files are deleted after 24 hours |
| 3 days | Good for temporary sharing |
| 7 days | Default — balanced retention |
| 14 days | Two-week window |
| 30 days | One-month retention |
| 60 / 90 days | Extended retention |
| Permanent | Files persist until manually deleted |
Important: After changing the expiration setting, Snapzy updates the lifecycle rule on your bucket automatically. Cloud providers may take up to 24 hours to process deletions after the expiry period.
Enable Auto-Upload
Once cloud storage is configured, enable automatic uploading:
- Open Preferences → After Capture
- Toggle Upload to Cloud under the Screenshot column

Now, every time you take a screenshot, Snapzy will:
- ✅ Upload to your cloud bucket
- 📋 Copy the public link to your clipboard
- 🔗 Show the link in the Quick Access card
You can also manually upload from the Quick Access card or Annotate editor.
Upload History
To open the Cloud Uploads window:
- Click the Snapzy icon in your menu bar
- Select Cloud Uploads (shortcut:
⌘⇧L)
You can also configure a custom keyboard shortcut for this action in Preferences → Shortcuts.
The Cloud Uploads window gives you a full overview of everything you've uploaded. You can switch between list view and grid view using the toggle in the toolbar. The window also includes:
- Search — find uploads by file name or URL
- Filters — filter by status (active/expired), provider, expire time, or sort order
- Copy link — hover over any upload and click the copy icon to grab the public URL
- Open in browser — preview any upload directly in Safari
- Delete — remove individual files from cloud storage, or bulk-delete everything
- Stats — see the total number of uploads at a glance
Secure Your Credentials
Snapzy stores your cloud credentials in the macOS Keychain (not in plain text). For extra security, you can set a protection password:
- You'll be prompted to set a password when first configuring cloud
- The password is required to view or edit your cloud credentials
- If you forget the password, you can reset the entire configuration
We strongly recommend setting a protection password if your Mac is shared with others.
Reference Documentation
AWS S3
- Creating a bucket
- Bucket policies
- Creating IAM users
- Managing access keys
- Object lifecycle management
Cloudflare R2
- Get started with R2
- Create R2 API tokens
- Public access (R2.dev)
- Custom domains for R2
- Object lifecycles
Need help? Open an issue on GitHub — we're happy to help! 🙌
Support the project
Snapzy is free and open source. If you find it useful, consider sponsoring to help keep development alive and accessible to everyone.