Ich Argument list too long
erhalte die Fehlermeldung: Wenn ich versuche, mit cUrl eine Datei in base64 innerhalb meines JSON-Körpers zu senden.
Ich benutze so etwas:
DATA=$( base64 "$FILE" )
curl -X POST -H "Content-Type: application/json" -d '{
"data": "'"$DATA"'"
}' $HOST
Gibt es eine andere Möglichkeit, die DATEN in den Körper meines JSON zu bekommen?
Beachten Sie, dass ich eine Datei in meinem Dateisystem lesen, in base64 umwandeln und dann im Körper senden muss.
Antworten:
Wenn die base64-codierte Datei zu groß ist, um in die Argumentliste zu passen, müssen Sie sie über eine Datei übergeben. Eine der einfacheren Möglichkeiten, die ich mir vorstellen kann, besteht darin, sie über die Standardeingabe zu übergeben. Auf der Curl-Manpage können Sie
-d @-
anstelle der Befehlszeile von stdin lesen.quelle
echo { "data": "$DATA" } | curl -X POST -H "Content-Type: application/json" -d @- "$HOST"