How to Migrate from DigitalOcean Spaces to Quake AI
Coming from another cloud?
▸DigitalOcean·Spaces Object Storage, Space (bucket)
Space (bucket)
- Naming differs: users create a “Space” that is a bucket, and each bucket has a unique URL (virtual-hosted or path style), whereas Swift uses containers within an account namespace. ().
- Bucket addressing uses S3-style endpoints such as `${BUCKET}.${REGION}.digitaloceanspaces.com` (and `${REGION}.digitaloceanspaces.com/${BUCKET}`), which differs from Swift’s account/container/object path conventions. (, ).
- Access keys can be scoped to high-level permission tiers (Read, Read/Write/Delete, All) applied across buckets/objects, which differs from Swift’s typical tenant/user + container ACL model. ().
How to migrate from DigitalOcean Spaces to Quake AI
DigitalOcean Spaces and Quake AI both use S3-compatible APIs. rclone copies data directly between endpoints with no local staging required.
Service mapping#
DigitalOcean to Quake AI
| DigitalOcean service | Quake AI equivalent | Key difference |
|---|---|---|
| Spaces Object Storage | Object storage | No notable divergence |
| Spaces API (S3-compatible RESTful XML API) | S3 Compatibility | Spaces documents that it implements only a subset of the Amazon S3 API; migrating users may need to validate specific S3... see details |
Prerequisites#
- A Quake AI account with S3 credentials
- A DigitalOcean Spaces access key (generated in the DigitalOcean Control Panel under API > Spaces Keys)
- rclone installed (v1.65+)
Before you start#
Read the migration planning guide for the S3/Swift compatibility matrix.
DigitalOcean-specific considerations:
- Egress fees: DigitalOcean includes an outbound transfer allowance per Spaces subscription and charges per-GiB for overage. For large migrations, estimate your transfer size against your plan allowance. Confirm current allowances and rates on the DigitalOcean Spaces pricing page.
- Cold Storage buckets: If your Space uses the Cold Storage tier (generally available since December 2025), retrieval fees apply when you read data above your monthly free allowance, and a 30-day minimum retention policy charges early deletions for the days remaining. Cold Storage also has lower request rate limits and is not available in the BLR1 region. Factor retrieval costs into your egress estimate. Confirm current Cold Storage terms on the DigitalOcean Spaces pricing page.
- CDN: If your Space has the built-in CDN enabled, this feature is not available on Quake AI. Front your Quake AI bucket with a CDN (Cloudflare, CloudFront) if you need edge caching. See CloudFront CDN setup.
- Ceph backend: DigitalOcean Spaces uses Ceph, similar to Quake AI's Swift S3 gateway. Standard S3 operations are compatible between the two.
- Space naming: DigitalOcean calls each bucket a "Space." The rclone workflow is identical to any S3-compatible source.
- Subscription billing: DigitalOcean Spaces billing starts when the first Space is created and ends when all Spaces are deleted. Factor this into your decommission timeline.
Configure rclone remotes#
Add both remotes to ~/.config/rclone/rclone.conf:
[do]
type = s3
provider = DigitalOcean
access_key_id = YOUR_DO_ACCESS_KEY
secret_access_key = YOUR_DO_SECRET_KEY
endpoint = nyc3.digitaloceanspaces.com
acl = private
[quakeai]
type = s3
provider = Ceph
access_key_id = YOUR_RUMBLE_ACCESS_KEY
secret_access_key = YOUR_RUMBLE_SECRET_KEY
endpoint = object.us-east-2.rumble.cloud
acl = privateReplace the DigitalOcean endpoint with the slug for your Space's region. Check the DigitalOcean regional availability page for the current list of Spaces regions and their endpoint slugs. Replace the Quake AI endpoint with your region.
Verify both remotes:
rclone lsd do:
rclone lsd quakeai:Create the destination bucket#
rclone mkdir quakeai:my-bucketRun the migration#
Initial copy#
rclone copy do:my-source-space quakeai:my-bucket \
--transfers 16 \
--checkers 32 \
--s3-chunk-size 64M \
--progress \
--log-file migration.log \
--log-level INFODelta syncs#
rclone sync do:my-source-space quakeai:my-bucket \
--transfers 16 \
--checkers 32 \
--progressSchedule daily until cutover.
Verify the migration#
rclone size do:my-source-space
rclone size quakeai:my-bucketCheck file integrity:
rclone check do:my-source-space quakeai:my-bucket \
--one-way \
--log-file check.logSee the validation checklist for the full procedure.
Cut over#
- Run a final
rclone sync. - Update your application's S3 endpoint configuration. See update application endpoint.
- If you were using the DO Spaces CDN, configure an external CDN (Cloudflare, CloudFront) pointing at your Quake AI bucket.
- Keep the DigitalOcean Space for 30 days as a rollback target.
- Delete all Spaces to stop DigitalOcean Spaces billing.
See also#
- Plan your migration: compatibility matrix, validation checklist
- Migration tools comparison: rclone configuration and alternatives
- Update application endpoint: swap SDK config to Quake AI
Usage Guidelines
The sample code, software libraries, command line tools, proofs of concept, templates, and other related technology on this page (including any of the foregoing that is provided by Quake AI personnel) is provided to you as Quake AI Content under the Quake AI Customer Agreement, or the relevant written agreement between you and Quake AI (whichever applies). Do not use this Quake AI Content in your production accounts, or on production or other critical data. You are responsible for testing, securing, and optimizing the Quake AI Content (such as sample code) as appropriate for production grade use based on your specific quality control practices and standards. Deploying Quake AI Content may incur Quake AI charges for creating or using Quake AI chargeable resources, such as running Compute instances or storing data in Object Storage. Your use is also subject to the Acceptable Use Policy.
For the full policy, see Usage Guidelines.
Last validated: 08.09.2026
Quick answers
- What is the S3-compatible endpoint hostname?CLIAPI
- Where do I set CORS rules, lifecycle policies, or bucket policies in the Console?Console
- Why do Object Storage API curl examples fail before the first request?API
- Why does my public bucket URL return 404 from the browser after I apply a public-read policy?APIConsole
See Also
S3 on Quake AI
Prerequisite
How to Migrate from Azure blob storage to Quake AI
Shares: S3, Migration
How to Migrate from Backblaze B2 to Quake AI
Shares: S3, Migration
How to Migrate from Google Cloud storage to Quake AI
Shares: S3, Migration
How to Migrate from Hetzner object storage to Quake AI
Shares: S3, Migration