Updated on 2024-03-01 GMT+08:00

Uploading an Image (Native OpenStack API)

Function

This API is used to upload a local image to the cloud platform. The image to be uploaded must be smaller than 2 GB. To upload an image larger than 2 GB, see Registering an Image.

For more information about how to use external files to create images, see sections "Creating a Private Windows Image Using an External Image File" and "Creating a Private Linux Image Using an External Image File" in Image Management Service User Guide.

The following describes how to use this API:

  1. Prepare the image to be uploaded. The image can be in QCOW2, VMDK, VHD, RAW, VHDX, QED, VDI, QCOW, ZVHD2, or ZVHD format.
  2. Create metadata for the image by performing the operations in Creating Image Metadata (Native OpenStack API). After the API is invoked successfully, save the image ID.
  3. Upload the image file with the image ID obtained in 2.

URI

PUT /v2/images/{image_id}/file

Table 1 lists the parameters in the URI.
Table 1 Parameter description

Parameter

Mandatory

Type

Description

image_id

Yes

String

Specifies the image ID.

  • image_id is the ID of the image you created by invoking the API for creating image metadata. Image upload may fail if you use other image IDs.
  • After this API is invoked, you can check the image status with the image ID. When the image status changes to active, the image is uploaded successfully.

AK/SK authentication supports API requests with a body not larger than 12 MB. For API requests with a larger body, token authentication is recommended.

Request

  • Request parameters

    Parameter

    Mandatory

    Type

    Description

    image_file

    Yes

    file

    Specifies the local file to be uploaded.

Example Request

PUT https://{Endpoint}/v2/images/84ac7f2b-bf19-4efb-86a0-b5be8771b476/file

If you use the curl command to call the API, the example request is as follows:

curl -i --insecure 'https://IP/v2/images/84ac7f2b-bf19-4efb-86a0-b5be8771b476/file' -X PUT -H "X-Auth-Token: $mytoken" -H "Content-Type:application/octet-stream" -T /mnt/userdisk/images/suse.zvhd

Response

  • Response parameters

    None

  • Example response
    HTTP/1.1 204

Returned Values

  • Normal

    204

  • Abnormal

    Returned Value

    Description

    400 Bad Request

    Request error. For details, see Error Codes.

    401 Unauthorized

    Authentication failed.

    403 Forbidden

    You do not have the rights to perform the operation.

    404 Not Found

    The requested resource was not found.

    409 Conflict

    Request conflict.

    500 System Error

    System error.