How do I set up DigitalOcean Spaces?
Use a DigitalOcean account that can create a Spaces bucket and access keys. Creating your first bucket starts a paid Spaces subscription; Transloadit processing is billed separately.
1. Create a private Spaces bucket
Follow DigitalOcean's bucket creation guide.
Choose Standard Storage for this example and keep the bucket private.
Record the bucket name and region code, such as nyc3, not a full endpoint or CDN URL.
2. Create a bucket-limited Spaces access key
Follow DigitalOcean's Spaces access key guide.
Choose Limited access, select only this bucket, and grant
Read/Write/Delete permission. DigitalOcean does not offer a
write-only Spaces key: this key can also read and delete objects. Limiting it to a dedicated bucket
reduces the damage if it leaks. Bucket-limited keys cannot be combined with PutBucketPolicy bucket
policies; use a separate bucket for this example if necessary.
Save the access key ID and secret securely. The secret is shown only when the key is created. Use a Spaces access key, not a DigitalOcean account API token.
3. Save Template Credentials
Follow How to create Template Credentials and select DigitalOcean Spaces as the service. Fill in:
| Console field | Value |
|---|---|
| Space Name | The bucket name. |
| Region | The bucket's region code. |
| Access Key ID | The Spaces access key ID. |
| Secret Access Key | The Spaces secret access key. |
Give the credential a recognizable name. Use that saved name in the Template, not the access key ID.
4. Test an export
Create a Template with these instructions, replacing
YOUR_DIGITALOCEAN_CREDENTIALS with the credential name you saved:
{
"steps": {
":original": {
"robot": "/upload/handle"
},
"exported": {
"robot": "/digitalocean/store",
"use": ":original",
"credentials": "YOUR_DIGITALOCEAN_CREDENTIALS",
"acl": "private"
}
}
}
Run the Template with a small test upload. After the Assembly
completes, inspect the export result and confirm the object exists in your authenticated DigitalOcean
Control Panel. A plain result URL does not grant anonymous access to this private object. If your
application needs a time-limited download URL, see sign_urls_for in the
🤖/digitalocean/store documentation.
More
- See Template documentation for Template setup and security.
- See the 🤖/digitalocean/store documentation for file paths, access settings, and other export options.
