Capistrano curl命令中未终止的引用字符串

问题描述 投票:0回答:1

我已经尝试了几个单引号,双引号和反斜杠的组合,我能想到的。如果有人可以请指出我做错了什么,非常感谢。

run_locally do
    execute "\\curl -X POST \"https://api.cloudflare.com/client/v4/zones/#{fetch(:cloudflare_zone)}/purge_cache\" \
    -H \"X-Auth-Email: [email protected]\" \
    -H \"X-Auth-Key: #{fetch(:cloudflare_api)}\" \
    -H \"Content-Type: application/json\" \
    --data {\"purge_everything\":true}\""
end

我的capistrano脚本每次碰到它都会死掉。我觉得这是最后一行,但我不确定为什么。

编辑:我已经过了那个错误,但现在从Cloudflare回来了“请求体中的格式错误的JSON”。

run_locally do
            execute "\\curl -X POST \"https://api.cloudflare.com/client/v4/zones/#{fetch(:cloudflare_zone)}/purge_cache\" \
    -H \"X-Auth-Email: [email protected]\" \
    -H \"X-Auth-Key: #{fetch(:cloudflare_api)}\" \
    -H \"Content-Type: application/json\" \
    --data \"{\"purge_everything\":true}\" "
end

所以出于某种原因,它不喜欢我的--data部分。

ruby capistrano cloudflare
1个回答
0
投票

我无法直接为您检查,但您可以使用其他字符串结构以更清晰的方式执行此操作,这有望为您突出显示问题。

run_locally do
  execute %{curl -X POST "https://api.cloudflare.com/client/v4/zones/#{fetch(:cloudflare_zone)}/purge_cache" \
    -H "X-Auth-Email: [email protected]" \
    -H "X-Auth-Key: #{fetch(:cloudflare_api)}" \
    -H "Content-Type: application/json" \
    --data '{"purge_everything":true}'}
  end

它可能是JSON中嵌套的双引号导致问题。

© www.soinside.com 2019 - 2024. All rights reserved.