DigitalOcean Spaces is an S3-compatible object storage service with a simple flat-rate pricing model. This guide walks you through connecting it to HeftySend.
Custom storage requires a Premium or Ultra plan. See Using your own storage with HeftySend for an overview.
Step 1: Create your Spaces bucket
- Go to your DigitalOcean Control Panel
- Click "Create" then "Spaces Object Storage"
- Choose a datacenter region closest to your users
- Enable CDN if you want faster global access (recommended)
- Enter a unique name for your Space
- Click "Create a Space"
Step 2: Set up CORS
- Click on your Space name to open it
- Go to the "Settings" tab
- Scroll to "CORS Configurations" and click "Add"
- Configure with these values:
Origin: *
Allowed Methods: GET, PUT, POST, DELETE, HEAD
Allowed Headers: *
Max Age: 3000
- Click "Save Options"
CORS must be added in the Space Settings or browser uploads will fail. Wait a few minutes after saving.
Step 3: Generate Spaces access keys
- Go to API > Spaces Keys
- Click "Generate New Key"
- Enter a name for your key (for example, HeftySend)
- Click "Create Access Key"
The secret key is only shown once. Save both the Access Key and Secret Key immediately.
Step 4: Find your endpoint
Your endpoint follows this format:
https://[REGION].digitaloceanspaces.com
Replace [REGION] with your Space's region code. You can find this in your Space's settings or URL.
Step 5: Connect to HeftySend
- Go to Settings > Storage in your HeftySend dashboard
- Click "Configure S3 Storage"
- Enter your endpoint URL
- Enter your Access Key and Secret Key
- Enter your Space name as the bucket name
- Select your region from the dropdown
- Click "Test Connection" then "Save"
Available regions
| Region code | Location |
|---|---|
| nyc3 | New York City 3 |
| sfo2 | San Francisco 2 |
| sfo3 | San Francisco 3 |
| ams3 | Amsterdam 3 |
| sgp1 | Singapore 1 |
| fra1 | Frankfurt 1 |
| syd1 | Sydney 1 |
Troubleshooting
If connection fails, make sure your endpoint uses the correct region code and that the Space name is exact (it is case-sensitive). For CORS errors, verify all required methods are listed and wait a few minutes after saving.