Unterstützte cURL-Optionen

cURL (Client für URLs) ist eine Open-Standard-Bibliothek mit Software-Funktionen, die den Scriptschritt „Aus URL einfügen“ aktivieren, um viele übliche Optionen der Dateiübertragung zu unterstützen. Erstellen Sie in diesem Scriptschritt mithilfe von cURL-Optionen angeben eine Formel, die eine oder mehrere der folgenden cURL-Optionen enthält.

Hinweis  Stellen Sie in cURL-Optionen jedem Anführungszeichen einen umgekehrten Schrägstrich voran. Um beispielsweise einen HTTP-Header für Content-type: application/json anzugeben, lautet der Textausdruck für cURL-Optionen angeben:

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

Nur die nachfolgend aufgeführten Optionen werden durch FileMaker-Clients unterstützt. Weitere Informationen finden Sie in der cURL-Dokumentation.

Option1 Parameter2 Hinweise

--anyauth

 

 

--aws-sigv4

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

Um die Amazon Web Services (AWS) V4-Signaturauthentifizierung in HTTPS-Headern zu senden, geben Sie eine Zeichenfolge für den Anbieter und optional die Region und den Dienst an. Verwenden Sie außerdem --user, um access_key_id:secret_access_key anzugeben.

In serverseitigen Scripts wird diese Option von FileMaker Server auf Ubuntu 20 nicht unterstützt.

--basic

 

 

--cert

-E

<$[$]fmvariable[:password]>

Geben Sie die Client-Zertifikatsdatei3 an, die mit HTTPS, FTPS oder einem anderen SSL-basierten Protokoll verwendet werden soll. Hängen Sie :[password] an, um eine Passphrase für das Client-Zertifikat anzugeben.

Diese Option setzt eine Zertifikatsdatei voraus, bei der der private Schlüssel und das Client-Zertifikat konkateniert sind. Verwenden Sie --key und --pass, um sie unabhängig voneinander anzugeben.

--cert-type

<type>

Geben Sie den Typ des Client-Zertifikats an. PEM, DER und P12 werden unterstützt. Wenn Sie nichts angeben, wird PEM verwendet.

--ciphers

<Liste von Ciphers>

 

--connect-timeout

<Sekunden>

Geben Sie eine Dezimalzahl für Sekunden an.

--continue-at

-C

<Versatz>

Die Verwendung von „-“ für die aktuelle Dateigröße wird nicht unterstützt. Daten ersetzen binäre Ziele, sie werden nicht angehängt.

--cookie

-b

<Name=Daten[;n2=d2]> oder <$[$]fmvariable>

Siehe Tabellenhinweis 3.

--cookie-jar

-c

<$[$]fmvariable>

Direkter Dateizugriff und „-“ werden durch eine FileMaker-Variable ersetzt.

--crlf

 

 

--data

-d

<Daten[;n2=d2]> oder @<$[$]fmvariable>

Siehe Tabellenhinweis 4.

--data-ascii

<Daten[;n2=d2]> oder @<$[$]fmvariable>

Siehe Tabellenhinweis 4.

--data-binary

<Daten[;n2=d2]> oder @<$[$]fmvariable>

Siehe Tabellenhinweis 4.

--data-raw

<Daten>

 

--data-urlencode

<Daten> oder =<daten> oder @<$[$]fmvariable> oder <Name>=<Daten> oder <Name>@<$[$]fmvariable>

Siehe Tabellenhinweis 4.

--digest

 

 

--disable-eprt

 

 

--disable-epsv

 

 

--dump-header

-D

<$[$]fmvariable>

Siehe Tabellenhinweis 3.

--expect100-timeout

<Sekunden>

Geben Sie eine Dezimalzahl für Sekunden an.

--fail

-f

 

 

--FM-return-container-variable

 

Wenn „Aus URL einfügen“ auf eine Variable gesetzt ist, verwenden Sie diese Option, um zu erzwingen, dass zurückgegebene Daten als Containerdaten gespeichert werden.

--FM-text-encoding

<Kodierung>

Konvertiert Text in den Optionen, die unmittelbar auf diese Option folgen, von der FileMaker internen Zeichenkodierung in die angegebene Kodierung. Verwenden Sie einen der Namen, die für den Parameter Kodierung der Funktion „TextEncode“ definiert sind.

--form

-F

<Name=Inhalt> oder <Name=@$[$]fmvariable>

Siehe Tabellenhinweis 4.

--form-string

<Name=Inhalt>

 

--ftp-alternative-to-user

<Befehl>

 

--ftp-create-dirs

 

 

--ftp-method

multicwd, nocwd oder singlecwd

Geben Sie eine dieser Methoden an.

--ftp-pasv

 

 

--ftp-port

-P

<Schnittstelle> oder <IP-Adresse> oder <Hostname> oder -

Fügen Sie :[Start]-[Ende] an, um einen Bereich von Ports anzugeben.

--ftp-pret

 

 

--ftp-skip-pasv-ip

 

 

--ftp-ssl-ccc

 

Stellt auch --ftp-ssl-ccc-mode auf passive ein, falls noch nicht geschehen.

--ftp-ssl-ccc-mode

active oder passive

Geben Sie einen dieser Modi an.

--ftp-ssl-control

 

 

--head

-I

 

 

--header

-H

<Name: Wert>

Verwenden Sie diese Option für jeden Header, den Sie angeben.

--ignore-content-length

 

 

--interface

<Name>

 

--ipv4

-4

 

 

--ipv6

-6

 

 

--junk-session-cookies

-j

 

 

--keepalive-time

<Sekunden>

Geben Sie eine Ganzzahl für Sekunden an.

--key-type

<type>

Geben Sie den Typ der privaten Schlüsseldatei an. DER und PEM werden unterstützt. Wenn Sie nichts angeben, wird PEM verwendet.

--key

<$[$]fmvariable>

Geben Sie die private Schlüsseldatei3 an. Verwenden Sie diese Option, wenn Sie Ihren privaten Schlüssel getrennt von der Zertifikatsdatei zur Verfügung stellen müssen.

--limit-rate

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

Geben Sie eine Ganzzahl gefolgt von einer optionalen Einheit ein.

--list-only

-l

 

 

--local-port

<num>[-num]

Geben Sie einen Port oder einen Bereich von Ports an.

--location

-L

 

 

--location-trusted

 

 

--mail-auth

<Adresse>

 

--mail-from

<Adresse>

 

--mail-rcpt

<Adresse>

 

--max-filesize

<Bytes>

 

--max-time

-m

<Sekunden>

Geben Sie eine Dezimalzahl für Sekunden an.

--no-compressed

 

Standardmäßig wird eine komprimierte Antwort angefordert. Verwenden Sie diese Option, um sie zu deaktivieren.

--no-keepalive

 

Standardmäßig sind keepalive-Meldungen aktiviert. Verwenden Sie diese Option, um sie zu deaktivieren.

--noproxy

<Host[,Host]> oder *

 

--output

-o

<Dateiname>

Der Dateiname wird nur als Attribut von Containerdaten verwendet.

--pass

<phrase>

Passphrase für den privaten Schlüssel. Verwenden Sie diese Option, wenn Sie die Passphrase Ihres privaten Schlüssels getrennt von der Zertifikatsdatei zur Verfügung stellen müssen.

--path-as-is

 

 

--post301

 

 

--post302

 

 

--post303

 

 

--proxy

-x

<[Protokoll://][Benutzer:Passwort@]Proxyhost[:Port]>

 

--proxy-anyauth

 

 

--proxy-basic

 

 

--proxy-digest

 

 

--proxy-header

<Name: Wert>

Verwenden Sie diese Option für jeden Header, den Sie angeben.

--proxy-user

-U

<Benutzer:Passwort>

Wenn das Passwort nicht existiert, fordern FileMaker-Clients im Gegensatz zum curl-Befehlszeilenprogramm den Benutzer nicht zur Passworteingabe auf.

--proxy1.0

<Proxyhost[:Port]>

 

--proxytunnel

-p

 

 

--pubkey

<$[$]fmvariable>

Geben Sie die Datei mit dem öffentlichen Schlüssel3 an, die mit dem SFTP-Protokoll verwendet werden soll. Verwenden Sie --key und --pass, um den privaten Schlüssel und die Passphrase für den privaten Schlüssel unabhängig voneinander anzugeben.

--quote

-Q

<Befehl>

Verwenden Sie diese Option einmal für jeden Befehl an den FTP-Server.

--range

-r

<Bereich>

 

--raw

 

 

--referer

-e

<URL>

Unterstützt ;auto am Ende des URL, wenn mit --location verwendet.

--request

-X

<Befehl>

 

--resolve

<Host:Port:Adresse>

Verwenden Sie diese Option für jeden Resolver, den Sie angeben.

--show-error

-S

 

Weitere Informationen finden Sie unter Fehlerbehandlung.

--socks4

<Host[:Port]>

 

--socks4a

<Host[:Port]>

 

--socks5

<Host[:Port]>

 

--socks5-hostname

<Host[:Port]>

 

--speed-limit

-Y

<Geschwindigkeit>

Geben Sie eine Ganzzahl an Bytes pro Sekunde an.

--speed-time

-y

<Zeit>

Geben Sie eine Ganzzahl für Sekunden an.

--ssl

 

--ftp-ssl wird ebenfalls unterstützt.

--ssl-reqd

 

--ftp-ssl-reqd wird ebenfalls unterstützt.

--time-cond

-z

<Datumsausdruck>

Unterstützt nur die Angabe eines Datumsausdrucks im cURL-Stil.

--tr-encoding

 

 

--trace

<$[$]fmvariable>

Siehe Tabellenhinweis 3.

--trace-ascii

<$[$]fmvariable>

Siehe Tabellenhinweis 3.

--trace-time

 

 

--upload-file

-T

<$[$]fmvariable>

Siehe Tabellenhinweis 3. Unterstützt kein Globbing (Angabe von Dateinamen, die einem Muster entsprechen). Für FTP und FTPS ist der Dateiname nach dem Hochladen auf den Server identisch mit dem Dateinamen, der am Ende der URL angegeben wurde. Bei allen anderen unterstützten Protokollen ist der Dateiname identisch mit den in den Containerdaten angegebenen Namen. Dateinamen in der URL werden ignoriert.

--use-ascii

-B

 

 

--user

-u

<Benutzer:Passwort>

Wenn das Passwort nicht existiert, fordern FileMaker-Clients im Gegensatz zum curl-Befehlszeilenprogramm den Benutzer nicht zur Passworteingabe auf.

--user-agent

-A

<Agent-Zeichenfolge>

 

--version

-V

 

Zeigt Informationen über die Version der cURL-Bibliothek (libcurl) an. Die erste Zeile zeigt die Vollversion von libcurl und andere verlinkte Bibliotheken von Drittanbietern. Die zweite Zeile (beginnend mit „Features:“) listet die unterstützten libcurl-Funktionen auf.

Tabellenhinweise

  1. Für einige Optionen werden Lang- und Kurzform des Optionsnamens unterstützt (z. B. ‑‑data und -d).

  2. Optionale Teile von Parametern befinden sich in eckigen Klammern [ ].

  3. Direkter Dateizugriff wird durch eine FileMaker-Variable ersetzt.

  4. Direkter Dateizugriff wird durch eine FileMaker-Variable mit dem vorangestellten @ ersetzt.

Verwenden von Variablen

Obwohl Ihnen die unterstützten Optionen direkten Zugriff auf Dateien oder das Erstellen von Dateien im Dateisystem erlauben, können Sie eine FileMaker-Variable als Quelle oder Ziel der Daten angeben, die die Option verlangt. Um auf eine Datei zuzugreifen bzw. eine Datei zu erstellen, können Sie die Variable auf ein Containerfeld setzen.

Um auf eine Datei zuzugreifen, können Sie die Variable auf ein Containerfeld setzen, das die Datei enthält, und dann diese Variable als Parameter der cURL-Option verwenden.

Um eine Datei zu erstellen, können Sie eine Variable als Parameter der cURL-Option verwenden, ein Containerfeld auf diese Variable setzen und dann das Containerfeld als Datei exportieren.

Fehlerbehandlung

Nicht unterstützte cURL-Optionen werden ignoriert.

Bei Verwendung der Option --show-error:

  • Wenn von der cURL-Bibliothek zurückgegebene Fehler verursachen, dass FileMaker-Clients den Fehlercode 1631 über die Funktion „Hole ( LetzteFehlerNr )“ zurückgeben, um einen unspezifizierten Verbindungsfehler zu melden, gibt die Funktion „Hole ( LetzteFehlerNrDetail )“ denselben Text wie das Befehlszeilenprogramm curl zurück.

  • Wenn ein Vorgang erfolgreich ist, der Server aber Antwortcode 400 oder höher mit den Daten liefert, geben FileMaker-Clients einen entsprechenden Fehlercode zurück. Ist kein entsprechender FileMaker-Fehlercode vorhanden, gibt „Hole ( LetzteFehlerNr )“ 1631 zurück und „Hole ( LetzteFehlerNrDetail )“ den Antwortcode in der Form „Antwortcode: nnn.“

Wenn Sie die Option --show-error nicht verwenden, veranlasst der Server-Antwortcode von 401, dass „Hole ( LetzteFehlerNr )“ den FileMaker-Fehlercode 1627 („Authentifizierung fehlgeschlagen“) zurückgibt. Alle anderen Antwortcodes geben FileMaker-Fehlercode 0 („Kein Fehler“) zurück.

Beispiel

Sendet HTTPS POST-Daten als zwei Schlüssel-Wert-Paare, vname=Robert und nname=Schmidt an beispiel.de mit den Anmeldedaten meinBenutzername und meinPasswort und speichert die verlangten Daten in der Variablen $$Ergebnis.

Im Scriptschritt „Aus URL einfügen“:

  • Stellen Sie Ziel auf die Variable $$Ergebnis ein.

  • Stellen Sie URL angeben auf https://beispiel.de/ ein.

  • Stellen Sie cURL-Optionen angeben auf eines der folgenden entsprechenden Optionensets ein:

    "--user meinBenutzername:meinPasswort --data vname=Robert&nname=Schmidt"
    "--user meinBenutzername:meinPasswort -d vname=Robert --data-ascii nname=Schmidt"
    "--user meinBenutzername:meinPasswort -d @$post_daten"

    Dabei ist die Variable $post_daten entweder auf Schlüssel-Wert-Paare als Text eingestellt oder auf ein Containerfeld, dessen Inhalt eine Textdatei ist, die Schlüssel-Wert-Paare enthält.

Das Script zeigt das obige Beispiel, das Schlüssel-Wert-Paare aus einer Datei im Containerfeld post_daten sendet.

Kopieren
Variable setzen [ $post_daten ; tabelle::post_daten ]
Aus URL einfügen [ Mit Dialog: Aus ; Ziel: $$Ergebnisse ; 
"https://beispiel.de/" ; SSL-Zertifikate verifizieren ; 
cURL-Optionen: "--user meinBenutzername:meinPasswort -d @$post_daten" ]