How to Migrate from DigitalOcean Spaces to AWS S3
· 3 min read · Updated

DigitalOcean Spaces is a good starting point for object storage. It is simple and S3-compatible, and $5/month covers 250 GB of storage and 1 TB of transfer. For small and mid-size projects, it does the job.
As storage grows, its limits start to show:
- Spaces are region-scoped. Each region sees only its own Spaces, and there is no cross-region replication.
- Apart from the newer Cold tier, everything is stored at one tier. There is no equivalent to S3's Glacier or Intelligent-Tiering for cost optimization.
- AWS S3 integrates with hundreds of services, such as Lambda, CloudFront, Athena, Step Functions and SageMaker. DigitalOcean's ecosystem is smaller.
- A busy application can use up the included 1 TB of transfer quickly.
When a project outgrows Spaces, AWS S3 is the most common destination.
DigitalOcean runs Spaces in many regions[1]. With Spaces in more than one region, you would normally handle each region separately.
When you connect your DigitalOcean account, Blober lists your Spaces from the regions it supports in one view, so there is no per-region setup. The DigitalOcean Spaces setup guide lists those regions.
DigitalOcean recently added a cold storage tier for Spaces. Blober detects whether a Space uses Standard or Cold storage and flags it, which helps when you pick the S3 storage class to copy into.
Add DigitalOcean Spaces as a provider in Blober with your S3-compatible credentials, the Access Key and Secret Key. You can also add a Personal Access Token for a richer listing with project metadata.
Add AWS S3 with your Access Key ID, Secret Access Key, and preferred region. Blober lists your S3 buckets.
Create a workflow with DigitalOcean as the source and S3 as the destination. Browse your Spaces, select files or entire Spaces, and choose the target S3 bucket and storage class.
Destination options:
- Target bucket: any existing S3 bucket. Create one in the AWS console first if you need a new one.
- Storage class: Standard, Intelligent-Tiering, Standard-IA, Glacier Instant Retrieval, Glacier, or Deep Archive.
The objects come down from Spaces to your computer and go straight up to S3 over your own connection, with no Blober server in between. Because both services speak the same S3 protocol, the transfer is efficient.
| DigitalOcean Spaces | AWS S3 Standard | AWS S3 Standard-IA | |
|---|---|---|---|
| Storage (1 TB) | $5/mo (250 GB included) + ~$15/mo extra | $23/mo | $12.50/mo |
| Bandwidth (1 TB) | Included | $90/mo | $90/mo |
| PUT requests (100K) | $0.50 | $0.50 | $1.00 |
DigitalOcean is cheaper for simple, low-traffic use. S3 becomes more cost-effective at scale with its tiering options, especially if you use Intelligent-Tiering or Glacier for archival data.
Do I have to set up each DigitalOcean region separately? No. When you connect your account, Blober lists your Spaces from the regions it supports in one view.
Do I need a Personal Access Token? No. The Spaces Access Key and Secret Key are enough to connect. A Personal Access Token adds a richer listing with project metadata.
Which S3 storage classes can I copy into? Standard, Intelligent-Tiering, Standard-IA, Glacier Instant Retrieval, Glacier, or Deep Archive. Blober flags Spaces that use DigitalOcean's Cold tier, which helps you choose.
Is AWS S3 cheaper than DigitalOcean Spaces? For simple, low-traffic use, no: Spaces includes 1 TB of transfer, while 1 TB of S3 bandwidth costs $90. At scale, S3's tiers such as Intelligent-Tiering and Glacier can bring the bill down.