Recibo el error: Argument list too long
cuando intento usar cUrl para enviar un archivo en base64 dentro del cuerpo de mi JSON.
Estoy usando algo como esto:
DATA=$( base64 "$FILE" )
curl -X POST -H "Content-Type: application/json" -d '{
"data": "'"$DATA"'"
}' $HOST
¿Hay alguna otra forma de obtener los DATOS en el cuerpo de mi JSON?
Tenga en cuenta que necesito leer un archivo en mi sistema de archivos, transformarlo en base64 y luego enviarlo dentro del cuerpo.
Respuestas:
Si el archivo codificado en base64 es demasiado grande para caber en la lista de argumentos, tendrá que pasarlo a través de un archivo. Una de las formas más fáciles en que puedo pensar es pasarlo a través de la entrada estándar. Desde la página de manual de curl , puede usar
-d @-
para leer desde stdin en lugar de la línea de comando.fuente
echo { "data": "$DATA" } | curl -X POST -H "Content-Type: application/json" -d @- "$HOST"