调用SendFile向一台或多台ECS实例下发远程文件。

接口说明:

  • 目标ECS实例的状态必须为运行中(Running)。
  • 目标ECS实例必须预先安装云助手客户端。详情请参见InstallCloudAssistant
  • 云助手客户端版本需要高于以下对应的版本才能支持下发文件。如果结果返回ClientNeedUpgrade错误码,请参见升级或禁止升级云助手客户端文档,将客户端更新至最新版本。
    • Linux:1.0.2.569
    • Windows:1.0.0.149
  • 文件内容在进行Base64编码后,大小不能超过32 KB。
  • 文件下发可能会因为目标ECS实例的状态异常、网络异常或云助手客户端异常而出现失败的情况。请调用DescribeSendFileResults进行问题排查。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求参数

名称 类型 是否必选 示例值 描述
Action String SendFile

系统规定参数。取值:SendFile

RegionId String cn-hangzhou

目标ECS实例所在的地域ID。您可以调用DescribeRegions查看最新的阿里云地域列表。

Name String file.txt

文件名称。支持全字符集,长度不得超过255个字符。

InstanceId.N RepeatList i-bp185dy2o3o6n****

需要执行命令的ECS实例列表。最多能指定50台ECS实例ID。N的取值范围:1~50

TargetDir String /home

文件下发目标ECS实例中的目录。如不存在则会自动创建。

Content String #!/bin/bash echo "Current User is :" echo $(ps | grep "$$" | awk '{print $2}') -------- oss://bucketName/objectName

文件内容。文件内容在Base64编码后,大小不能超过32 KB。

  • ContentType参数为PlainText时,该字段为明文格式的普通文本。
  • ContentType参数为Base64时,该字段为Base64编码的文本。
Description String This is a test file.

描述信息。支持全字符集,长度不得超过512个字符。

ContentType String PlainText

文件内容类型。

  • PlainText:普通文本
  • Base64:Base64编码

默认值:PlainText

Timeout Long 60

下发文件的超时时间。单位:秒

  • 当因为进程原因、缺失模块、缺失云助手客户端等原因无法下发文件时,会出现超时现象。
  • 当设置的超时时间小于10秒时,为确保下发成功,系统会将超时时间自动设置为10秒。

默认值:60

FileOwner String root

文件的用户。只对Linux实例生效,默认为root。

FileGroup String root

文件的用户组。只对Linux实例生效,默认为root。

FileMode String 0644

文件的权限。只对Linux实例生效,设置方式与chmod命令相同。

默认值为0644,表示用户具有读写权限,用户组和其它用户具有只读权限。

Overwrite Boolean true

如果同名文件在目标目录已存在,是否覆盖文件。

  • true:覆盖
  • false:不覆盖

默认值:false

返回数据

名称 类型 示例值 描述
InvokeId String f-7d2a745b412b46****

命令执行ID。

RequestId String 473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E

请求ID。

示例

请求示例

https://ecs.aliyuncs.com/?Action=SendFile
&Content='echo hello'
&InstanceId.1=i-bp185dy2o3o6n****
&Name=file.txt
&RegionId=cn-hangzhou
&TargetDir=/home
&<公共请求参数>

正常返回示例

XML 格式

<SendFileResponse>
          <RequestId>E69EF3CC-94CD-42E7-8926-F133B86387C0</RequestId>
          <InvokeId>f-7d2a745b412b46****</InvokeId>
</SendFileResponse>

JSON 格式

{
    "RequestId": "E69EF3CC-94CD-42E7-8926-F133B86387C0",
    "InvokeId": "f-7d2a745b412b46****"
}

错误码

HttpCode 错误码 错误信息 描述
500 InternalError.Dispatch An error occurred when you dispatched the request. 发送请求时发生错误,请稍后重试。
403 FileSize.ExceedLimit The length of file content exceeds limit. 文件内容长度超过上限。
403 FileName.ExceedLimit The length of file name exceeds limit. 文件名称长度超过上限。
403 FileDesc.ExceedLimit The length of file description exceeds limit. 文件描述长度超过上限。
403 FileTargetDir.Invalid The target directory of file is invalid. 目标路径TargetDir参数无效。
403 InstanceIds.ExceedLimit The number of instance IDs exceeds the upper limit. 目标实例数量超过上限。
403 FileMode.Invalid The mode of file is invalid. 文件权限FileMode参数无效。
403 FileContent.DecodeError The Content can not be base64 decoded. 文件内容Base64解码错误。
403 FileContentType.Invalid The ContentType of file is invalid. 文件内容类型ContentType参数无效。

访问错误中心查看更多错误码。