参数列表太长 curl

Max*_*Max 1 bash curl

试图解决“参数列表太长”我一直在寻找解决的办法,发现一个最接近我的问题 卷曲:参数列表太长, 但响应并不清楚我仍然有问题“参数列表太长”

curl -X POST -d @data.txt \
   https://Path/to/attachments  \
   -H 'content-type: application/vnd.api+json' \
   -H 'x-api-key: KEY' \
-d '{
"data": {
  "type": "attachments",
  "attributes": {
    "attachment": {
    "content": "'$(cat data.txt | base64 --wrap=0)'",
    "file_name": "'"$FileName"'"
    }
  }
}
}'
Run Code Online (Sandbox Code Playgroud)

谢谢你

Léa*_*ris 5

用于jq将 base64 编码的数据字符串格式化为正确的 JSON 字符串,然后将 JSON 数据作为标准输入传递给curl命令。

#!/usr/bin/env sh

attached_file='img.png'

# Pipe the base64 encoded content of attached_file
base64 --wrap=0 "$attached_file" |
# into jq to make it a proper JSON string within the
# JSON data structure
jq --slurp --raw-input --arg FileName "$attached_file" \
'{
  "type": "attachments",
  "attributes": {
    "attachment": {
      "content": .,
      "file_name": $FileName
    }
  }
}
' |
# Get the resultant JSON piped into curl
# that will read the data from the standard input
# using -d @-
curl -X POST -d @- \
   'https://Path/to/attachments'  \
   -H 'content-type: application/vnd.api+json' \
   -H 'x-api-key: KEY'
Run Code Online (Sandbox Code Playgroud)