支持的 cURL 选项

cURL( URL 客户端)是一种开放标准的软件功能库,允许通过从 URL 插入脚本步骤支持多个常规文件传输选项。在此脚本步骤中,使用“指定 cURL 选项”可创建包含以下一个或多个 cURL 选项的计算。

注释  在 cURL 选项内,在每个引号前加反斜杠。例如,要为 Content-type: application/json 指定 HTTP 首部,“指定 cURL 选项”的文本表达式为:

"--header \"Content-type: application/json\""

只有以下列出的选项受 FileMaker 客户端的支持。有关更多信息,请参阅 cURL 文档

选项1 参数2 注释

--anyauth

 

 

--aws-sigv4

<provider1[:provider2[:region[:service]]]>

要在 HTTPS 标头中发送 Amazon Web Services (AWS) V4 签名身份验证,请为提供商指定一个字符串,也可以指定区域和服务。也可使用 --user 指定 access_key_id:secret_access_key

在服务器端脚本中,Ubuntu 20 上的 FileMaker Server 不支持此选项。

--basic

 

 

--cert

-E

<$[$]fm变量[:密码]>

指定要用于 HTTPS、FTPS 或其他基于 SSL 的协议的客户端证书文件3。附加 :[密码] 为客户端证书指定通行代码。

此选项假定证书文件已连接私钥与客户端证书。分别使用 --key--pass 指定它们。

--cert-type

<类型>

指定客户端证书的类型。支持的类型包括 PEMDERP12。若未指定,将使用 PEM

--ciphers

<密码列表>

 

--connect-timeout

<秒>

指定秒的小数。

--continue-at

-C

<偏移>

不支持在当前文件大小中使用“-”。数据替换、未附加到、二进制目标。

--cookie

-b

<名称=数据[;n2=d2]><$[$]fm变量>

请参见表格注释 3

--cookie-jar

-c

<$[$]fm变量>

直接文件访问,“-”将由 FileMaker 变量替代。

--crlf

 

 

--data

-d

<数据>@<$[$]fm变量>

请参见表格注释 4

--data-ascii

<数据>@<$[$]fm变量>

请参见表格注释 4

--data-binary

<数据>@<$[$]fm变量>

请参见表格注释 4

--data-raw

<数据>

 

--data-urlencode

<数据>=<数据>@<$[$]fm变量><名称>=<数据><名称>@<$[$]fm变量>

请参见表格注释 4

--digest

 

 

--disable-eprt

 

 

--disable-epsv

 

 

--dump-header

-D

<$[$]fm变量>

请参见表格注释 3

--expect100-timeout

<秒>

指定秒的小数。

--fail

-f

 

 

--FM-return-container-variable

 

如果“从 URL 插入”将一个变量作为目标,请使用此选项强制返回的数据存储为容器数据。

--FM-text-encoding

<编码>

将此选项紧接的选项中的文本从 FileMaker 内部字符编码转换为指定编码。使用为 TextEncode 函数编码参数定义的名称之一。

--form

-F

<名称=内容><名称=@$[$]fm变量>

请参见表格注释 4

--form-string

<名称=内容>

 

--ftp-alternative-to-user

<命令>

 

--ftp-create-dirs

 

 

--ftp-method

multicwdnocwdsinglecwd

指定这些方法之一。

--ftp-pasv

 

 

--ftp-port

-P

<接口><IP 地址><主机名>-

附加 :[开始]-[结束] 以指定端口范围。

--ftp-pret

 

 

--ftp-skip-pasv-ip

 

 

--ftp-ssl-ccc

 

如果尚未设置,还需要将 --ftp-ssl-ccc-mode 设置为 被动模式

--ftp-ssl-ccc-mode

主动被动

指定这些模式之一。

--ftp-ssl-control

 

 

--head

-I

 

 

--header

-H

<名称:值>

为每个指定的标题使用此选项一次。

--ignore-content-length

 

 

--interface

<名称>

 

--ipv4

-4

 

 

--ipv6

-6

 

 

--junk-session-cookies

-j

 

 

--keepalive-time

<秒>

指定秒的整数。

--key-type

<类型>

指定私钥文件的类型。支持的类型包括 DERPEM。若未指定,将使用 PEM

--key

<$[$]fm变量>

指定私钥文件 3。如果需要独立于证书文件提供私钥,请使用此选项。

--limit-rate

<速度[b|B|k|K|m|M|g|G]>

指定整数及后接的可选单位。

--list-only

-l

 

 

--local-port

<编号>[-编号]

指定一个端口或端口范围。

--location

-L

 

 

--location-trusted

 

 

--mail-auth

<地址>

 

--mail-from

<地址>

 

--mail-rcpt

<地址>

 

--max-filesize

<字节>

 

--max-time

-m

<秒>

指定秒的小数。

--no-compressed

 

默认情况下,请求压缩响应。使用此选项可禁用该消息。

--no-keepalive

 

默认情况下,会启用 keepalive 消息。使用此选项可禁用该消息。

--noproxy

<主机[,主机]>*

 

--output

-o

<文件名>

文件名仅用作容器数据的属性。

--pass

<短语>

私钥的密码短语。如果需要独立于证书文件提供私钥的密码短语,请使用此选项。

--path-as-is

 

 

--post301

 

 

--post302

 

 

--post303

 

 

--proxy

-x

<[协议://][用户:密码@]代理主机[:端口]>

 

--proxy-anyauth

 

 

--proxy-basic

 

 

--proxy-digest

 

 

--proxy-header

<名称:值>

为每个指定的标题使用此选项一次。

--proxy-user

-U

<用户:密码>

与 curl 命令行工具不同,如果密码不存在,FileMaker 客户端不会向用户索要密码。

--proxy1.0

<代理主机[:端口]>

 

--proxytunnel

-p

 

 

--pubkey

<$[$]fm变量>

指定要用于 SFTP 协议的公钥文件3。使用 --key--pass 单独指定私钥和私钥的密码短语。

--quote

-Q

<命令>

为用于 FTP 服务器的每个命令使用此选项一次。

--range

-r

<范围>

 

--raw

 

 

--referer

-e

<URL>

--location 一起使用时支持在 URL 末尾使用 ;auto

--request

-X

<命令>

 

--resolve

<主机:端口:地址>

为每个指定的解析器使用此选项一次。

--show-error

-S

 

请参阅处理错误

--socks4

<主机[:端口]>

 

--socks4a

<主机[:端口]>

 

--socks5

<主机[:端口]>

 

--socks5-hostname

<主机[:端口]>

 

--speed-limit

-Y

<速度>

指定每秒字节的整数。

--speed-time

-y

<时间>

指定秒的整数。

--ssl

 

还支持 --ftp-ssl

--ssl-reqd

 

还支持 --ftp-ssl-reqd

--time-cond

-z

<日期表达式>

仅支持指定 cURL 样式的日期表达式。

--tr-encoding

 

 

--trace

<$[$]fm变量>

请参见表格注释 3

--trace-ascii

<$[$]fm变量>

请参见表格注释 3

--trace-time

 

 

--upload-file

-T

<$[$]fm变量>

请参见表格注释 3。不支持通配(指定与某个模式匹配的文件名)。对于 FTP 和 FTPS,上传到服务器后的文件名将与 URL 末尾指定的文件名相同。对于所有其他受支持的协议,文件名与容器数据指定的文件名相同;URL 中的任何文件名将被忽略。

--use-ascii

-B

 

 

--user

-u

<用户:密码>

与 curl 命令行工具不同,如果密码不存在,FileMaker 客户端不会向用户索要密码。

--user-agent

-A

<代理字符串>

 

--version

-V

 

显示 cURL 库 (libcurl) 版本的相关信息。第一行显示 libcurl 及其他链接的第三方库的完全版本。第二行(从“Features:”开始)列出支持的 libcurl 功能。

表注释

  1. 对于某些选项,支持选项名称的长短形式(例如 ‑‑data-d)。

  2. 参数的可选部分位于 [ ] 中。

  3. 直接文件访问将由 FileMaker 变量替代。

  4. 直接文件访问将由前缀为 @ 字符的 FileMaker 变量替代。

使用变量

尽管支持的选项都不允许您直接访问文件系统中的文件或在其中创建文件,但是,您可以指定 FileMaker 变量作为该选项所需的源或目标。要访问或创建文件,您可以将变量设置为容器字段。

要访问文件,您可以将变量设置为其中包含文件的容器字段,然后使用该变量作为 cURL 选项的参数。

要创建文件,您可以将变量用作 cURL 选项的参数,将容器字段设置为该变量,然后作为文件导出容器字段。

处理错误

不受支持的 cURL 选项将被忽略。

如果使用 --show-error 选项:

  • 如果 cURL 库返回错误导致 FileMaker 客户端通过 Get (上一个错误)函数返回错误代码 1631(指示未指明的连接失败),Get (上一个错误详情)函数会返回 curl 命令行工具返回的相同文本。

  • 当操作成功但服务器返回 400 或以上的数据响应代码时,FileMaker 客户端会返回相应的错误代码。如果没有相应的 FileMaker 错误代码,Get (上一个错误) 将返回 1631 并且 Get (上一个错误详情) 将返回形式为“响应代码:nnn”的响应代码。

如果不使用 --show-error 选项,服务器响应代码 401 将导致 Get(上一个错误) 返回 FileMaker 错误代码 1627(“验证失败”)。所有其他响应代码返回 FileMaker 错误代码 0(“没有错误”)。

示例

使用证书 myusername mypassword 作为两个关键值对(fname=Bob lname=Smith)将 HTTPS POST 数据发送到 example.com,并将请求的数据存储在 $$results 变量中。

在从 URL 插入脚本步骤中:

  • 将“目标”设置为名为 $$results 的变量。

  • 将“指定 URL”设置为 https://example.com/

  • 将“指定 cURL 选项”设置为以下等价选项集之一:

    "--user 我的用户名:我的密码 --data fname=Bob&lname=Smith"
    "--user 我的用户名:我的密码 -d fname=Bob --data-ascii lname=Smith"
    "--user 我的用户名:我的密码 -d @$post_data"

    其中变量 $post_data 设置为文本形式的关键值对或者设置为内容是包含关键值对的文本文件的容器字段。

此脚本显示以上示例中从 post_data 容器字段中的文件发送关键字对的情况。

复制
设置变量 [ $post_data ; 表::post_data ]
从 URL 插入 [ 包括对话框:关闭 ; 目标: $$结果 ; 
"https://example.com/" ; 验证 SSL 证书; 
cURL 选项: "--user 我的用户名:我的密码 -d @$post_data" ]