Saya mendapatkan kesalahan: Argument list too long
ketika mencoba menggunakan cUrl untuk mengirim file di base64 di dalam tubuh JSON saya.
Saya menggunakan sesuatu seperti ini:
DATA=$( base64 "$FILE" )
curl -X POST -H "Content-Type: application/json" -d '{
"data": "'"$DATA"'"
}' $HOST
Apakah ada cara lain untuk mendapatkan DATA di tubuh JSON saya?
Mempertimbangkan bahwa saya perlu membaca file di sistem file saya, mengubahnya menjadi base64 dan kemudian mengirimkannya ke dalam tubuh.
Jawaban:
Jika file yang disandikan base64 terlalu besar untuk masuk dalam daftar argumen Anda harus meneruskannya melalui file. Salah satu cara yang lebih mudah yang dapat saya pikirkan adalah melewatinya melalui input standar. Dari halaman manual curl , Anda dapat menggunakannya
-d @-
untuk membaca dari stdin alih-alih baris perintah.sumber
echo { "data": "$DATA" } | curl -X POST -H "Content-Type: application/json" -d @- "$HOST"