我们正在利用 V Cloud API 与虚拟机交互(创建机器、执行操作、切换媒体等)。一个请求的功能是能够将媒体(特别是 ISO)上传到特定的目录。API 指南(第67 页)相当简单,我们对上传开始时提供的 URL 的多部分请求顺利进行。
注意:我们必须在开始上传之前声明文件大小
在上传过程中唯一看起来不对劲的是“传输的大小”最终大于过程结束时的“文件大小”。这有点奇怪,因为我们的内容范围永远不会超过预期的文件大小(我们假设元数据被包含在我们没有发言权的情况下)。一旦此传输的大小超过文件大小,文件上传的状态将更改为“错误”,但仍返回一个200 OK
{
"name": "J Small 4",
"description": "",
"files": [{
"name": "file",
"totalSize": 50696192,
"status": "Error",
"link": "https://cloud01.cs2cloud.com/transfer/27b8f93c-8319-419e-9e8c-15622097670b/file",
"transferredSize": 54293177
}],
"id": "urn:vcloud:media:1cec68ef-f22e-4ec7-ae5d-dfbc4f7137d9",
"catalogId": "urn:vcloud:catalogitem:19dbfdd8-ea70-4355-abc7-96e34dccb869"
}
甚至不确定从哪里开始调试,因为所有 API 调用都返回.ISO 文件200 OK
似乎很好,我们的内容范围标头永远不会超出既定文件大小,元数据似乎超出了我们的范围在编辑或测量方面进行控制。
希望有些人以前经历过这个问题,并可以提供一些洞察力来寻求解决方案