সিআরএল: যুক্তি তালিকা খুব দীর্ঘ too


15

আমি ত্রুটিটি পাচ্ছি: Argument list too longযখন আমার জেএসওএন-র মূলের অভ্যন্তরে বেস 64 এ একটি ফাইল প্রেরণের জন্য সিআরএল ব্যবহার করার চেষ্টা করা হচ্ছে।

আমি এই জাতীয় কিছু ব্যবহার করছি:

DATA=$( base64 "$FILE" )

curl -X POST -H "Content-Type: application/json" -d '{
   "data": "'"$DATA"'"
}' $HOST

আমার জেএসওনের শরীরে ডেটা পাওয়ার অন্য কোনও উপায় নেই?

আমার ফাইল সিস্টেমে একটি ফাইল পড়তে হবে, এটি বেস 64 এ রূপান্তর করুন এবং তারপরে এটি শরীরের অভ্যন্তরে প্রেরণ করা দরকার তা বিবেচনা করুন।


হয়তো সম্পর্কিত: stackoverflow.com/questions/19003855/...
fredtantini

উত্তর:


19

যদি বেস 64-এনকোডযুক্ত ফাইলটি আর্গুমেন্ট তালিকায় ফিট করার জন্য খুব বড় হয় তবে আপনাকে ফাইলের মাধ্যমে এটি পাস করতে হবে। আমি যে সহজ উপায়গুলি ভাবতে পারি তার মধ্যে একটি হ'ল স্ট্যান্ডার্ড ইনপুট দিয়ে pass থেকে কার্ল man পৃষ্ঠা , আপনি ব্যবহার করতে পারেন -d @-কমান্ড লাইন পরিবর্তে stdin থেকে পড়তে।

curl -X POST -H "Content-Type: application/json" -d @- "$HOST" <<CURL_DATA
{ "data": "$DATA" }
CURL_DATA

আপনি এই সংস্করণটি আরও বেশি পছন্দ করতে পারেন:echo { "data": "$DATA" } | curl -X POST -H "Content-Type: application/json" -d @- "$HOST"
মোরহুক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.