To create a new custom image, send a POST request to /v2/images. The body must contain a url attribute pointing to a Linux virtual machine image to be imported into DigitalOcean. The image must be in the raw, qcow2, vhdx, vdi, or vmdk format. It may be compressed using gzip or bzip2 and must be smaller than 100 GB after being decompressed.
import os
from pydo import Client
client = Client(token=os.environ.get("DIGITALOCEAN_TOKEN"))
req = {
"name": "ubuntu-18.04-minimal",
"url": "http://cloud-images.ubuntu.com/minimal/releases/bionic/release/ubuntu-18.04-minimal-cloudimg-amd64.img",
"distribution": "Ubuntu",
"region": "nyc3",
"description": "Cloud-optimized image w/ small footprint",
"tags": [
"base-image",
"prod"
]
}
resp = client.images.create_custom(body=req)
See the API spec for this endpoint to view additional detail on responses, headers, parameters, and more.
The response will be a JSON object with a key set to image
. The value of this will be an image object containing a subset of the standard image attributes as listed below, including the image’s id
and status
. After initial creation, the status
will be NEW
. Using the image’s id, you may query the image’s status by sending a GET
request to the /v2/images/$IMAGE_ID
endpoint. When the status
changes to available
, the image will be ready for use.
Unauthorized
API Rate limit exceeded
Server error.
Unexpected error