发送文件到云主机(UploadFileToVm)
API请求
URLs
POST zstack/v1/upload-fileHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"vmInstanceUuids": [
"358310f6b6b23b9f9bdcf8d34b03719f"
],
"fileContent": "ZWNobyBoZWxsb3dvcmxkCg\u003d\u003d",
"remotePath": "/var/lib/zstack/uploadfile"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"vmInstanceUuids":["358310f6b6b23b9f9bdcf8d34b03719f"],"fileContent":"ZWNobyBoZWxsb3dvcmxkCg==","remotePath":"/var/lib/zstack/uploadfile"}}' http://localhost:8080/zstack/v1/upload-file参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| vmInstanceUuids | List | body(包含在params结构中) | 要上传的云主机列表 | 5.2.0 | |
| fileContent | String | body(包含在params结构中) | 要上传的文件内容,使用Base64加密 | 5.2.0 | |
| remotePath | String | body(包含在params结构中) | 要上传的绝对路径,包含有文件名 | 5.2.0 | |
| systemTags (可选) | List | body | 系统标签 | 5.2.0 | |
| userTags (可选) | List | body | 用户标签 | 5.2.0 |
API返回
该API成功时返回一个空的JSON结构{},出错时返回的JSON结构包含一个error字段,例如:
{
"error": {
"code": "SYS.1001",
"description": "A message or a operation timeout",
"details": "Create VM on KVM timeout after 300s"
}
}SDK示例
Java
SDK
UploadFileToVmAction action = new UploadFileToVmAction();
action.vmInstanceUuids = asList("358310f6b6b23b9f9bdcf8d34b03719f");
action.fileContent = "ZWNobyBoZWxsb3dvcmxkCg==";
action.remotePath = "/var/lib/zstack/uploadfile";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
UploadFileToVmAction.Result res = action.call();Python
SDK
UploadFileToVmAction action = UploadFileToVmAction()
action.vmInstanceUuids = [358310f6b6b23b9f9bdcf8d34b03719f]
action.fileContent = "ZWNobyBoZWxsb3dvcmxkCg=="
action.remotePath = "/var/lib/zstack/uploadfile"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
UploadFileToVmAction.Result res = action.call()