/tool/fetch

fetch

Download and upload files and make HTTP requests from the console or scripts. See the Fetch guide.


tool/fetch

Type: Command

从控制台或脚本下载和上传文件以及发出 HTTP 请求。参见 Fetch 指南。

参数类型描述
urlstring资源的完整 URL,例如 https://download.mikrotik.com/routeros/7.19/CHANGELOG 或 ftp://user:password@192.168.88.2/conf.rsc。协议方案选择模式,ftp/sftp URL 可以携带凭据。可以替代单独的 address 和 src-path 参数。不能在 URL 中指定 VRF:在 http://192.168.88.2@vrf1/ 中,@ 后的部分被视为主机名。请使用 address 参数指定 VRF。
outputenum (none | file | user | user-with-headers)决定获取的数据存储在哪里。 - none - 不存储下载的数据。 - file(默认)- 将下载的数据存储在文件中(dst-path;使用 url 且没有 dst-path 时,文件以 URL 路径的最后部分命名)。 - user - 将下载的数据存储在 as-value 的 data 值中,最多 64512 字节(63 KiB);更长的正文会被截断而不报错。 - user-with-headers - 将下载的数据存储在 data 中(最多 20480 字节,20 KiB),并将响应头存储在 http-headers 中(最多 44 KB)。
http-methodenum (get | post | put | delete | head | patch)请求的 HTTP 方法。不带 http-data 的 PUT 和 PATCH 发送空正文。 - get(默认)- 请求资源。 - post - 将 http-data 发送到资源。 - put - 将 http-data 作为资源的新内容发送。 - delete - 删除资源。 - head - 仅请求响应头。 - patch - 将 http-data 作为资源的部分更改发送。
http-auth-schemeenum (basic | digest)user 和 password 的 HTTP 身份验证方案。使用 basic 时,凭据随第一个请求发送,无需等待质询。默认值:basic。
http-datastringPOST、PUT 和 PATCH 的请求正文。最大数据限制为 64 KB。如果 http-header-field 中没有 Content-Type,正文以 application/x-www-form-urlencoded 发送。
http-header-fieldmulti { array-id, header-field: string }HTTP header fields and values, in the form of "h1:fff,h2:yyy": a comma starts the next header. To keep a comma inside one header value, escape it with two backslashes, e.g. "h:fff\,yyy" sends h: fff,yyy. Fetch always sends User-Agent: RouterOS <version> and Accept-Encoding: deflate, gzip.
check-certificateenum (no | yes | yes-without-crl)HTTPS 的 TLS 证书验证。 - no(默认)- 不验证:fetch 甚至可连接到证书已过期或自签名的服务器。 - yes - 对照本地证书存储验证信任链,其中包括包含公共根证书的内置信任存储。无效证书会使获取失败,例如 failure: SSL: ssl: cert not valid (after: ... < now: ...)。 - yes-without-crl - 在不进行 CRL 检查的情况下验证证书。
certificateenumHTTPS 模式下用于服务器验证的证书存储中的证书。仅在启用 check-certificate 时适用。
addressalt { address: address (flags=46vi) , address: ipAddr }目标设备的 IP 地址或主机名。附加 @vrf_name 以在特定 VRF 内运行获取操作,或仅设置 address=@vrf_name 并让 url 参数提供地址。
src-addressalt { ip: ipAddr , ip6: ip6Addr }用于建立连接的源 IP 地址。仅适用于 HTTP、HTTPS 和 SFTP 模式。
portnum用于连接的端口。默认值:模式对应的端口(http 为 80,https 为 443,ftp 为 21,sftp 为 22,tftp 为 69),或 url 中给出的端口。
modeenum (http | https | ftp | tftp | sftp)用于连接的协议。使用 url 时,协议来自 URL 方案。 - http(默认)- HTTP。 - https - 基于 TLS 的 HTTP。 - ftp - FTP;下载和上传。 - tftp - TFTP;从 TFTP 服务器下载,例如另一台路由器上的 /ip/tftp。 - sftp - 基于 SSH 的 SFTP;下载和上传。
http-content-encodingenum (deflate | gzip)使用 gzip 或 deflate 压缩 http-data,并添加匹配的 Content-Encoding 头。仅适用于 POST 和 PUT 方法。
ip-typeenum (any | ipv4 | ipv6)解析域名时的 IP 协议族偏好。 - any(默认)- 使用 IPv4 或 IPv6。 - ipv4 - 仅使用 IPv4。 - ipv6 - 仅使用 IPv6。
src-pathfile远程文件的路径;使用 upload=yes 时,为要上传的本地文件。
dst-pathfile获取的文件保存到的目标路径;使用 upload=yes 时,为远程设备上的文件名。没有 dst-path 时,下载文件以 URL 路径的最后部分命名。
userstring用于在远程设备上进行身份验证的用户名。没有 user 时,FTP 以 anonymous 登录,HTTP 不发送凭据。
passwordstringuser 的密码。有 user 但没有 password 时,HTTP 发送空密码。
hoststring远程 Web 服务器的主机名或虚拟主机名。当同一 IP 服务多个虚拟主机时很有用。例如 address=manual.mikrotik.com host=forum.mikrotik.com。
asciibool为 FTP/TFTP 传输启用 ASCII 模式。默认值:no。
uploadbool为 FTP 和 SFTP 传输启用上传模式:src-path 是本地文件,dst-path(或 url 中的路径)是远程设备上的名称。不支持 HTTP 上传;请使用带 http-data 的 http-method=put。默认值:no。
sftp-known-hosts-ignorebool为此 SFTP 传输跳过 SSH 主机密钥验证。当 /ip/ssh 中启用了 known-hosts-validation 时有效;未启用验证时,接受任何主机密钥。默认值:no。
keep-resultbool已弃用,请改用 output 参数。
idle-timeoutalt { idle-timeout: time [1 .. 604800] , idle-timeout: enum (none) { none:0 } }自上次读/写操作以来的空闲超时。默认值:10s。
http-max-redirect-countnumfetch 跟随的 HTTP 重定向最大数量。默认值为 2 时,会跟随两次重定向链,第三次重定向会以收到的 3xx 状态使获取失败。默认值:2。
http-percent-encodingbool对请求路径中除字母数字和 -._~/?^=: 外的每个字符进行百分号编码。默认值:no。
http-versionenum (http1_1 | http2 | http2-forced)HTTP 协议版本。HTTP2 仅在 ARM64 和 x86/CHR 设备上支持。默认值:http1_1。
只读参数类型描述
statusenum (none | connecting | requesting | downloading | uploading | finished | failed)获取操作的当前状态。
codenum服务器返回的 HTTP 状态代码。
downloadednum下载量,单位为 KiB,向下取整,数据到达时至少为 1(7 字节和 2047 字节都显示 1)。使用 output=user 时,为存储在 data 中的量;将 [:len ($r->"data")] 与限制比较以检测正文是否被截断。
uploadednum上传量,单位为 KiB,向下取整。
totalnum传输的总大小,单位为 KiB,向下取整。
durationtime获取操作的总持续时间。
datastringoutput 为 user(最多 64512 字节)或 user-with-headers(最多 20480 字节)时获取的数据。更长的正文会被截断而不报错。
http-headersobject { http-header: super { key: string , [value] : string } }服务器返回的 HTTP 头。