You can use a PUT request to upload each file that the vApp template references.

Verify that you uploaded the OVF descriptor. See Uploading the OVF Descriptor.

Retrieve the upload URLs for all files in the package. See Retrieving Additional Upload URLs.


Find the upload:default URL for the file you want to upload.


Use the upload:default URL to construct a PUT request for the file.

The request specifies an upload URL and a content length in bytes. See Example: Uploading File Data.

After all the files are uploaded, the vApp template is complete, and has a status attribute value of 8. If the upload included a manifest file, the server checks each file in the upload to verify that its checksum matches the one stated in the manifest. If a checksum does not match, the template’s status attribute is set to -1 and the template contains a Task element whose Error element indicates the reason for the failure.

This example shows an upload request for one of the files that an OVF package requires. The upload request is a Content-Length header followed by the serialized file content.


Content-length: 1950489088
  ...serialized contents of file disk0.vmdk...



200 OK