How to Add Droplet Snapshots to Other Regions

Snapshots are on-demand disk images of DigitalOcean Droplets and volumes saved to your account. Use them to create new Droplets and volumes with the same contents.


By default, a Droplet snapshot is only available in the region where it was created. If you want to use a snapshot to create Droplets in other regions, you need to add the snapshot to those regions first. It doesn’t cost more to add a snapshot to more regions.

Note
You cannot transfer DigitalOcean Volume Snapshots to other regions or users. As an alternative, you can use tools like SnapShooter, rsync or SFTP to transfer the data.

Add a Droplet Snapshot to Other Regions using Automation

How to add an image to a region using the DigitalOcean CLI

To add an image to a region via the command-line, follow these steps:

  1. Install doctl, the DigitalOcean command-line tool.

  2. Create a personal access token, and save it for use with doctl.

  3. Use the token to grant doctl access to your DigitalOcean account.

                  doctl auth init
                
  4. Finally, add an image to a region with doctl compute image-action transfer. The basic usage looks like this, but you'll want to read the usage docs for more details:

                  doctl compute image-action transfer <image-id> [flags]
                

    The following example transfers an image with the ID 386734086 to the region with the slug nyc3

                       doctl compute image-action transfer 386734086 --region nyc3
                    
How to add an image to a region using the DigitalOcean API

To add an image to a region using the DigitalOcean API, follow these steps:

  1. Create a personal access token, and save it for use with the API.

  2. Send a POST request to https://api.digitalocean.com/v2/images/{image_id}/actions

    cURL

    To add an image to a region with cURL, call:

    
                    # Transfer an Existing Image
    curl -X POST \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
      -d '{"type":"transfer","region":"nyc2"}' \
      "https://api.digitalocean.com/v2/images/7938269/actions"
    
    # Convert an Image into a Snapshot
    curl -X POST \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
      -d '{"type":"convert"}' \
      "https://api.digitalocean.com/v2/images/7938291/actions"

    Go

    Go developers can use Godo, the official DigitalOcean V2 API client for Go. To add an image to a region with Godo, use the following code:

    
                    import (
        "context"
        "os"
    
        "github.com/digitalocean/godo"
    )
    
    func main() {
        token := os.Getenv("DIGITALOCEAN_TOKEN")
    
        client := godo.NewFromToken(token)
        ctx := context.TODO()
    
        // Transfer an existing image
        transferRequest := &godo.ActionRequest{
            "type":   "transfer",
            "region": "nyc2",
        }
      # Transfer an Image
        transfer, _, err := client.ImageActions.Transfer(ctx, 7938269, transferRequest)
    
      # Convert an Image to a Snapshot
      # client.image_actions.convert(image_id: 7938269)
    
    }

    Ruby

    Ruby developers can use DropletKit, the official DigitalOcean V2 API client for Ruby. To add an image to a region with DropletKit, use the following code:

    
                    require 'droplet_kit'
    token = ENV['DIGITALOCEAN_TOKEN']
    client = DropletKit::Client.new(access_token: token)
    
    # Transfer an Image
    client.image_actions.transfer(image_id: 7938269, region: 'nyc2')
    
    # Convert an Image to a Snapshot
    # client.image_actions.convert(image_id: 7938269)

    Python

    
                    import os
    from pydo import Client
    
    client = Client(token=os.environ.get("DIGITALOCEAN_TOKEN"))
    
    req = {
      "type": "convert"
    }
    resp = client.image_actions.post(image_id=342341, body=req)

Add a Droplet Snapshot to Other Regions using the Control Panel

To add a Droplet snapshot to another region, click the source Droplet’s name. On the Droplet’s detail page, click Snapshots in the left menu. Open the snapshot’s More menu and click Add to region to open the Snapshot availability window.

Changing snapshot regions

Click each region you want to make the snapshot available in. A spinner displays as the snapshot image is added, which may take several minutes. When the snapshot becomes available in a region, the spinner stops and the region is no longer selectable.

Once the snapshot is added to the new region, you can use it to create new Droplets.