Linux 命令行 curl 用 POST 方法 调用 pastebin 系统 API 添加文本文件
我们已经有了利用免费
在某些场景下, 你在
实践
假设,
你要上传的文件名 bigdan.yaml
你的短链系统 URL https://pastebin.crazypeace.workers.dev/
你的短链系统的密码 tieludasiliqiuweiyue
那么,
file_content_escaped=$(cat bigdan.yaml | jq -s -R)cat <<EOF >json_data{"cmd": "add","key": "bigdan.yaml","password": "tieludasiliqiuweiyue","url": $file_content_escaped}EOFcurl -H "Content-Type: application/json" -X POST -d @json_data https://pastebin.crazypeace.workers.dev/
========
过程
如果是简单参数的
json_data='{"cmd": "add","key": "cpgg","password": "tieludasiliqiuweiyue","url": "https://github.com/crazypeace"}'curl -H "Content-Type: application/json" -X POST -d "$json_data" https://pastebin.crazypeace.workers.dev/
这种方式不涉及创建文件, 但手搓
如果你的各个参数是变量, 比如, 有一个很长的变量是这样的:
token="abcdefghijklmnopqrstuvwxyz1234567890"for i in {1..100}; do token1="$token1 $token"; done
我要保存这个token1, 那么可以这么用:
json_data=$(jq --arg cmd "add" --arg key "bigpara" --arg password "tieludasiliqiuweiyue" --arg url "$token1" '.cmd = $cmd | .key = $key | .password = $password | .url = $url' <<< '{}')curl -H "Content-Type: application/json" -X POST -d "$json_data" https://pastebin.crazypeace.workers.dev/
* 插一句, 如果
比如,
jq --arg cmd "add" --arg key "bigpara" --arg password "tieludasiliqiuweiyue" --arg url "https://github.com/crazypeace" '.cmd = $cmd | .kv.key = $key | .password = $password | .kv.url = $url' <<< '{}'
生成的结构就是这样的:
{"cmd": "add","kv": {"key": "bigpara","url": "https://github.com/crazypeace"},"password": "tieludasiliqiuweiyue"}
但是, 如果这个变量再长一点, 比如, 我们再扩大
for i in {1..10}; do token2="$token2 $token1"; done
再这样去调用
json_data=$(jq --arg cmd "add" --arg key "bigbigpara" --arg password "tieludasiliqiuweiyue" --arg url "$token2" '.cmd = $cmd | .key = $key | .password = $password | .url = $url' <<< '{}')curl -H "Content-Type: application/json" -X POST -d "$json_data" https://pastebin.crazypeace.workers.dev/
你会发现, jq
-bash: /usr/bin/jq: Argument list too long
所以, 我们用写在正文最前面的那个方法.
========
后记
我的短链系统 默认是验证 短链 是否冲突的. 如果你希望系统不要校验, 那么修改一下这个配置项为 true
overwrite_kv: true
Error: Specific key existed.
评论
发表评论