Je reçois l'erreur: Argument list too long
lorsque j'essaie d'utiliser cUrl pour envoyer un fichier en base64 à l'intérieur du corps de mon JSON.
J'utilise quelque chose comme ça:
DATA=$( base64 "$FILE" )
curl -X POST -H "Content-Type: application/json" -d '{
"data": "'"$DATA"'"
}' $HOST
Existe-t-il un autre moyen d'obtenir les DONNÉES dans le corps de mon JSON?
Tenez compte du fait que je dois lire un fichier dans mon système de fichiers, le transformer en base64 puis l'envoyer à l'intérieur du corps.
Réponses:
Si le fichier encodé en base64 est trop gros pour tenir dans la liste des arguments, vous devrez le passer via un fichier. L'un des moyens les plus simples auxquels je peux penser est de le passer via une entrée standard. À partir de la page de manuel curl , vous pouvez utiliser
-d @-
pour lire à partir de stdin au lieu de la ligne de commande.la source
echo { "data": "$DATA" } | curl -X POST -H "Content-Type: application/json" -d @- "$HOST"