Opções cURL suportadas

cURL (Client for URLs) é uma biblioteca de padrão aberto de funções de software que habilita a Etapa de script Inserir do URL para oferecer suporte a muitas opções comuns de transferência de arquivo. Na etapa de script, use Especificar opções cURL para criar um cálculo que inclui uma ou mais das opções cURL a seguir.

Nota  Nas opções do cURL, coloque um caractere de barra invertida antes das aspas. Por exemplo, para especificar um cabeçalho HTTP para Content-type: application/json, a expressão do texto de Especificar opções cURL é:

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

Somente as opções listadas abaixo são suportadas pelos clientes do FileMaker. Para obter mais informações, consulte a documentação do cURL.

Opção1 Parâmetro2 Notas

--anyauth

--aws-sigv4

<provedor1[:provedor2[:região[:serviço]]]>

Para enviar a autenticação de assinatura Amazon Web Services (AWS) V4 em cabeçalhos HTTPS, especifique uma string para o provedor e, opcionalmente, região e serviço. Use também --user para especificar access_key_id:secret_access_key.

Em scripts do lado do servidor, essa opção não é suportada pelo FileMaker Server no Ubuntu 20.

--basic

--cert

-E

<$[$]fmvariable[:password]>

Especifique o arquivo de certificado de cliente3 que será usado com HTTPS, FTPS ou outro protocolo baseado em SSL. Anexe :[password] para especificar uma senha para o certificado de cliente.

Essa opção adota um arquivo de certificado que tem uma chave privada e o certificado de cliente concatenado. Use --key e --pass para especificar essas opções de forma independente.

--cert-type

<type>

Especifique o tipo de certificado de cliente. PEM, DER e P12são os tipos permitidos. Se nenhum for especificado, o PEM será usado.

--ciphers

<lista de códigos>

--connect-timeout

<segundos>

Especifique um número decimal de segundos.

--continue-at

-C

<offset>

O uso de "-" para tamanho de arquivo atual não é suportado. Os dados substituem, não anexam, destinos binários.

--cookie

-b

<nome=dados[;n2=d2]> ou <$[$]fmvariable>

Consulte a nota de tabela 3.

--cookie-jar

-c

<$[$]fmvariable>

O acesso direto ao arquivo e "-" são substituídos por uma variável do FileMaker.

--crlf

--data

-d

<dados> ou @<$[$]fmvariable>

Consulte a nota de tabela 4.

--data-ascii

<dados> ou @<$[$]fmvariable>

Consulte a nota de tabela 4.

--data-binary

<dados> ou @<$[$]fmvariable>

Consulte a nota de tabela 4.

--data-raw

<dados>

--data-urlencode

<dados> ou =<dados> ou @<$[$]fmvariable> ou <nome>=<dados> ou <nome>@<$[$]fmvariable>

Consulte a nota de tabela 4.

--digest

--disable-eprt

--disable-epsv

--dump-header

-D

<$[$]fmvariable>

Consulte a nota de tabela 3.

--expect100-timeout

<segundos>

Especifique um número decimal de segundos.

--fail

-f

--FM-return-container-variable

Quando Inserir do URL está direcionado para uma variável, use essa opção para forçar o armazenamento dos dados retornados como dados de container.

--FM-text-encoding

<codificação>

Converte texto em opções que seguem imediatamente essa opção da codificação interna de caracteres do FileMaker para a codificação especificada. Use um dos nomes definidos para o parâmetro de codificação da Função TextEncode.

--form

-F

<nome=conteúdo> ou <nome=@$[$]fmvariable>

Consulte a nota de tabela 4.

--form-string

<nome=conteúdo>

--ftp-alternative-to-user

<comando>

--ftp-create-dirs

--ftp-method

multicwd, nocwd ou singlecwd

Especifique um destes métodos.

--ftp-pasv

--ftp-port

-P

<interface> ou <endereço IP> ou <nome do host> ou -

Acrescente :[start]-[end] para especificar um intervalo de portas.

--ftp-pret

--ftp-skip-pasv-ip

--ftp-ssl-ccc

Configure também --ftp-ssl-ccc-mode como passive, caso ainda não esteja configurado.

--ftp-ssl-ccc-mode

active ou passive

Especifique um destes modos.

--ftp-ssl-control

--head

-I

--header

-H

<nome: valor>

Use essa opção uma vez para cada cabeçalho que você especificar.

--ignore-content-length

--interface

<nome>

--ipv4

-4

--ipv6

-6

--junk-session-cookies

-j

--keepalive-time

<segundos>

Especifique um número inteiro de segundos.

--key-type

<type>

Especifique o tipo de chave privada. DER e PEM são os tipos permitidos. Se nenhum for especificado, o PEM será usado.

--key

<$[$]fmvariable>

Especifique o arquivo de chave privada3. Use essa opção se você precisar fornecer a sua chave privada separadamente do arquivo de certificado.

--limit-rate

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

Especifique um número inteiro seguido por uma unidade opcional.

--list-only

-l

--local-port

<núm>[-num]

Especifique uma porta ou um intervalo de portas.

--location

-L

--location-trusted

--mail-auth

<endereço>

--mail-from

<endereço>

--mail-rcpt

<endereço>

--max-filesize

<bytes>

--max-time

-m

<segundos>

Especifique um número decimal de segundos.

--no-compressed

Por padrão, uma resposta compactada é solicitada. Use essa opção para desativá-las.

--no-keepalive

Por padrão, as mensagens de aviso de tempo limite estão ativadas. Use essa opção para desativá-las.

--noproxy

<host[,host]> ou *

--output

-o

<nome do arquivo>

O nome do arquivo é usado somente como um atributo de dados do container.

--pass

<phrase>

Senha para a chave privada. Use essa opção se você precisar fornecer a senha da sua chave privada separadamente do arquivo de certificado.

--path-as-is

--post301

--post302

--post303

--proxy

-x

<[protocolo://][usuário:senha@]hostDo Proxy[:porta]>

--proxy-anyauth

--proxy-basic

--proxy-digest

--proxy-header

<nome: valor>

Use essa opção uma vez para cada cabeçalho que você especificar.

--proxy-user

-U

<usuário:senha>

Diferente da ferramenta de linha de comando do curl, se a senha não existir, os clientes do FileMaker não solicitarão a senha ao usuário.

--proxy1.0

<hostDoProxy[:porta]>

--proxytunnel

-p

--pubkey

<$[$]fmvariable>

Especifique o arquivo de chave pública 3para usar com o protocolo SFTP. Use --key e --pass para especificar a chave privada e a senha para a chave privada independentemente.

--quote

-Q

<comando>

Use essa opção uma vez para cada comando ao servidor de FTP.

--range

-r

<intervalo>

--raw

--referer

-e

<URL>

Aceita ;auto no final do URL quando usado com --location.

--request

-X

<comando>

--resolve

<host:porta:endereço>

Use essa opção uma vez para cada resolvedor que você especificar.

--show-error

-S

Consulte Como lidar com erros.

--socks4

<host[:porta]>

--socks4a

<host[:porta]>

--socks5

<host[:porta]>

--socks5-hostname

<host[:porta]>

--speed-limit

-Y

<velocidade>

Especifique um número inteiro de bytes por segundo.

--speed-time

-y

<tempo>

Especifique um número inteiro de segundos.

--ssl

--ftp-ssl também é suportado.

--ssl-reqd

--ftp-ssl-reqd também é suportado.

--time-cond

-z

<expressão de data>

Aceita somente a especificação de expressão de data no estilo cURL.

--tr-encoding

--trace

<$[$]fmvariable>

Consulte a nota de tabela 3.

--trace-ascii

<$[$]fmvariable>

Consulte a nota de tabela 3.

--trace-time

--upload-file

-T

<$[$]fmvariable>

Consulte a nota de tabela 3. Não aceita mascaramento de nome de arquivo (especificação de nomes de arquivo que seguem um padrão). Para FTP e FTPS, o nome do arquivo após o upload no servidor será o mesmo nome do arquivo especificado no final do URL. Para todos os outros protocolos suportados, o nome do arquivo é o mesmo nome especificado nos dados de container; qualquer nome de arquivo no URL será ignorado.

--use-ascii

-B

--user

-u

<usuário:senha>

Diferente da ferramenta de linha de comando do curl, se a senha não existir, os clientes do FileMaker não solicitarão a senha ao usuário.

--user-agent

-A

<string do agente>

--version

-V

Exibe informações sobre a versão da biblioteca cURL (libcurl). A primeira linha mostra a versão completa de libcurl e as outras bibliotecas de terceiros vinculadas. A segunda linha (que começa com "Features:") lista os recursos de libcurl permitidos.

Notas da tabela

  1. Algumas opções aceitam formatos longos e curtos do nome da opção (por exemplo, ‑‑data e -d).

  2. As partes opcionais dos parâmetros estão entre colchetes [ ].

  3. O acesso direto ao arquivo é substituído por uma variável do FileMaker.

  4. O acesso direto ao arquivo é substituído por uma variável do FileMaker com o prefixo @.

Utilização de variáveis

Apesar de nenhuma opção suportada permitir que você acesse ou crie arquivos diretamente no sistema de arquivos, você pode especificar uma variável do FileMaker como a fonte ou o destino dos dados que a opção exige. Para acessar ou criar um arquivo, você pode definir a variável como um campo de container.

Para acessar um arquivo, você pode definir a variável como um campo de container, que contém o arquivo, e usar essa variável como o parâmetro da opção cURL.

Para criar um arquivo, você pode usar uma variável como o parâmetro da opção cURL, definir um campo de container como essa variável e exportar o campo de container como um arquivo.

Como lidar com erros

As opções cURL não suportadas são ignoradas.

Se você usar a opção --show-error:

  • Quando os erros retornados pela biblioteca de cURL fazem com que os clientes do FileMaker retornem o código de erro 1631 por meio da Função Get(LastError) para indicar uma falha de conexão não especificada, a Função Get(LastErrorDetail) retorna o mesmo erro retornado pela ferramenta de linha de comando do cURL.

  • Quando uma operação é bem-sucedida, mas o servidor retorna um código de resposta 400 ou superior com os dados, os clientes do FileMaker retornam um código de erro adequado. Se não houver um código de erro adequado do FileMaker, Get(LastError) retornará 1631 e Get(LastErrorDetail) retornará o código de resposta na forma "Código de resposta: nnn".

Se você não usar a opção --show-error, o código de resposta do servidor 401 fará com que o Get(LastError) retorne o código de erro 1627 do FileMaker ("Falha na autenticação"). Todos os outros códigos de resposta retornam o código de erro 0 do FileMaker ("Sem erro").

Exemplo

Envia dados HTTPS POST como dois pares de chave-valor, fname=Bob e lname=Smith para exemplo.com usando as credenciais meunomedeusuário e minhasenha e armazena os dados solicitados na variável $$results.

Na etapa de script Inserir do URL:

  • Configure Destino como a variável chamada $$results.

  • Defina Especificar URL como https://exemplo.com/.

  • Configure Especificar opções cURL como um dos conjuntos de opções equivalentes a seguir:

    "--user meunomedeusuário:minhasenha --data fname=Bob&lname=Smith"
    "--user meunomedeusuário:minhasenha -d fname=Bob --data-ascii lname=Smith"
    "--user meunomedeusuário:minhasenha -d @$post_data"

    quando a variável $post_data estiver definida como pares de valores-chave como texto ou definida como um campo de container cujo conteúdo é um arquivo de texto contendo pares de valores-chave.

Este script mostra o exemplo acima enviando pares de chave-valor de um arquivo no campo de container post_data.

Copiar
Definir variável [ $post_data ; table::post_data ]
Inserir do URL [ Com diálogo: Off ; Destino: $$results ; 
"https://exemplo.com/" ; Verificar certificados SSL ; 
opções cURL: "--user meunomedeusuário:minhasenha -d @$post_data" ]