重定向后的 cURL PUT

cURL PUT following a redirect

我有一个 url,由于系统限制,使用 google firebase 缩短了它。我需要能够对它执行 curl PUT 和 GET 命令。 url 缩短器最终会进行重定向,我认为这是我的问题发生的地方。我使用 -L 标志让 GET 开始工作。

curl -X GET -L "http://myshorturl.com/hostedfile" --output GET.csv

但是我仍然无法让 PUT 工作

curl -X PUT -L "http://myshorturl.com/hostedfile" --upload-file PUT.csv

给我一个错误

Error 405 (Not Found)

这似乎意味着 PUT 是不允许的,但我知道我的端点确实允许,因为当我做同样的事情而不缩短 url 一切正常。

curl -X PUT -L "http://mymuchlongerurl.com/hostedfile" --upload-file PUT.csv

关于如何解决这个问题的任何想法?

不幸的是,当向缩短器 URL 请求 PUT 和 POST 方法时,会发生错误,而对于 GET 方法,使用选项 -L 请求工作正常。因此,作为使用缩短器 URL 的 PUT 请求的解决方法,这个怎么样?

修改后的 curl 命令:

curl -X PUT -L `curl -D - "http://myshorturl.com/hostedfile" | awk '/Location/ {print $NF}'` --upload-file PUT.csv
  • curl -D - "http://myshorturl.com/hostedfile" 检索重定向信息。
    • - of -D - 表示结果显示到标准输出。
  • curl -D - "http://myshorturl.com/hostedfile" | awk '/Location/ {print $NF}' 检索重定向的 URL.
  • 在您的情况下,可能不需要 -L 修改后的 curl 命令。但我无法测试它。对此我感到很抱歉。

参考:

如果这不是您想要的解决方法并且没有奏效,我深表歉意。