【问题标题】:Unterminated quoted string in Capistrano curl commandCapistrano curl 命令中未终止的引用字符串
【发布时间】:2018-08-30 13:52:01
【问题描述】:

我尝试了几乎所有我能想到的单引号、双引号和反斜杠的组合。如果有人能指出我做错了什么,将不胜感激。

run_locally do
    execute "\\curl -X POST \"https://api.cloudflare.com/client/v4/zones/#{fetch(:cloudflare_zone)}/purge_cache\" \
    -H \"X-Auth-Email: test@example.com\" \
    -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: test@example.com\" \
    -H \"X-Auth-Key: #{fetch(:cloudflare_api)}\" \
    -H \"Content-Type: application/json\" \
    --data \"{\"purge_everything\":true}\" "
end

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

【问题讨论】:

    标签: ruby capistrano cloudflare


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-13
      • 2021-07-29
      相关资源
      最近更新 更多