Overview

DigitalOcean Spaces provides S3-compatible object storage at a predictable, affordable price. Migrating from AWS S3 to Spaces is straightforward due to API compatibility, making it an excellent choice for startups and small-to-medium businesses looking to reduce cloud costs.

Why DigitalOcean Spaces?

Simple pricing at $5/month for 250GB with 1TB transfer, S3-compatible API, built-in CDN, and straightforward management.

Prerequisites

  • A Cloney account with an active subscription
  • AWS S3 bucket with data to migrate
  • DigitalOcean account with a Space created
  • Appropriate credentials for both services

Step 1: Add Your AWS S3 Source

  1. Log in to your Cloney dashboard
  2. Navigate to JobsCreate New Job
  3. Select AWS S3 as your source provider
  4. Enter your AWS credentials:
    • Access Key ID: Your IAM user access key
    • Secret Access Key: Your IAM user secret key
    • Region: The AWS region where your bucket is located
    • Bucket Name: The name of your source S3 bucket
  5. Click Validate Connection to verify access

Step 2: Configure Your DigitalOcean Spaces Destination

  1. Select DigitalOcean Spaces as your destination provider
  2. Enter your Spaces credentials:
    • Access Key: Your Spaces access key
    • Secret Key: Your Spaces secret key
    • Region: The Spaces region (e.g., nyc3, sfo3, ams3, sgp1, fra1)
    • Space Name: The name of your destination Space
  3. Click Validate Connection to verify access

Step 3: Configure Migration Options

Customize your migration with these options:

OptionDescriptionRecommendation
Prefix/Path FilterMigrate only objects matching a specific prefixUse for partial migrations
Preserve MetadataCopy object metadata along with dataEnable for full fidelity
CDN EnableEnable CDN for migrated objectsEnable for public content
Overwrite ExistingReplace objects that already exist in destinationEnable for sync operations

Step 4: Start the Migration

  1. Review your migration configuration
  2. Click Start Migration
  3. Monitor progress in the Jobs dashboard
Migration Complete

Once finished, verify your data in the DigitalOcean control panel and update your applications to use the new Space endpoint.

Updating Your Application

Since DigitalOcean Spaces is S3-compatible, updating your application is straightforward:

JavaScript - Update S3 Client Configuration
// Before (AWS S3)
const s3Client = new S3Client({
  region: "us-east-1",
  credentials: {
    accessKeyId: "YOUR_AWS_KEY",
    secretAccessKey: "YOUR_AWS_SECRET"
  }
});

// After (DigitalOcean Spaces)
const s3Client = new S3Client({
  region: "nyc3",
  endpoint: "https://nyc3.digitaloceanspaces.com",
  credentials: {
    accessKeyId: "YOUR_SPACES_KEY",
    secretAccessKey: "YOUR_SPACES_SECRET"
  }
});

Best Practices

  • Enable CDN: DigitalOcean Spaces includes a free CDN - enable it for frequently accessed public content.
  • Test API compatibility: While Spaces is S3-compatible, test your application thoroughly to ensure all features work as expected.
  • Update CORS settings: Configure CORS on your Space to match your application requirements.
  • Consider file size limits: Spaces has a 5GB single upload limit; larger files require multipart upload.