我正试图使用REST将ova文件上传到vcenter库。要做到这一点(所有这些都使用Vcenter api完成)
阶段1~6已成功完成,但最后阶段我无法将ova文件上传到vcenter库。当我调用api时,它返回200个resp代码,似乎上传成功完成了。但是,实际上,我找不到在vcenter库中导入的任何ova文件,我可以看到“错误检测到解析头”的错误
我的上传功能在下面;
func UploadFile(client *http.Client, fileName, uploadEndpoint, sessionID string) (status bool, err error) {
file, err := os.Open(fileName)
if err != nil {
return false, err
}
defer file.Close()
body := &bytes.Buffer{}
writer := multipart.NewWriter(body)
part, err := writer.CreateFormFile("file", filepath.Base(fileName))
if err != nil {
return false, err
}
_, err = io.Copy(part, file)
err = writer.Close()
if err != nil {
return false, err
}
//uploadEndpoint ; https://ip252.ip-51-255-152.eu:443/cls/data/5a86158a-f818-4796-8bc1-e4d88a29dcd7/focal-server-cloudimg-amd64.ova
req, err := http.NewRequest("POST", uploadEndpoint, body)
req.Header.Set("Content-Type", writer.FormDataContentType())
req.Header.Set("vmware-api-session-id", sessionID)
resp, err := client.Do(req)
if err != nil {
return false, err
}
defer resp.Body.Close()
return true, nil
}发布于 2022-10-25 18:32:00
有点晚了,但是我做了个剧本采用所选的OVA,将其推送到指定的vCenter,然后使用PowerCLI将其转换为模板。你可能会发现其中的一些部分很有用。
https://stackoverflow.com/questions/70706395
复制相似问题