首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用vcenter api将ova文件导入到vcenter?

如何使用vcenter api将ova文件导入到vcenter?
EN

Stack Overflow用户
提问于 2022-01-14 05:32:57
回答 1查看 273关注 0票数 0

我正试图使用REST将ova文件上传到vcenter库。要做到这一点(所有这些都使用Vcenter api完成)

  1. 8月使用
  2. 获取数据存储
  3. 创建图书馆
  4. 将项添加到库中
  5. 创建更新会话
  6. 获取上传的端点
  7. 将ova文件上载到vcenter

阶段1~6已成功完成,但最后阶段我无法将ova文件上传到vcenter库。当我调用api时,它返回200个resp代码,似乎上传成功完成了。但是,实际上,我找不到在vcenter库中导入的任何ova文件,我可以看到“错误检测到解析头”的错误

我的上传功能在下面;

代码语言:javascript
复制
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
}
EN

回答 1

Stack Overflow用户

发布于 2022-10-25 18:32:00

有点晚了,但是我做了个剧本采用所选的OVA,将其推送到指定的vCenter,然后使用PowerCLI将其转换为模板。你可能会发现其中的一些部分很有用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70706395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档