将 curl 与 URL 一起使用有什么违法行为?

What is illegal about using curl with this URL?

我有以下 URL:

https://amazon-advertising-api-reports-prod-euamazon.s3.amazonaws.com/apj6jra9ng5v4-avp9363n2w589-report-campaign-45f7c968-d7e8-4d8e-a6ef-2b144268ab36.json.gz?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20210930T164837Z&X-Amz-SignedHeaders=host&X-Amz-Expires=30&X-Amz-Credential=AKIXXXXXXXXXZ6X%2F20210930%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=2a549XXXXXXXXXX0e61f43166c267eaafedf8

这是亚马逊广告 API 的原始响应,只有少数元素被 'X' 替换,其中包含您希望在签名或凭证中出现的正常字符。

如果我将此 url 复制并粘贴到我的浏览器中,我可以按预期下载该文件。当尝试使用以下 curl 命令的任何变体检索此文件时...

curl -o $REPORT_DATA_FILE_GZ "$REPORT_DOWNLOAD_URL\"

or 

curl -o $REPORT_DATA_FILE_GZ "\"$REPORT_DOWNLOAD_URL\""

or 

curl -o $REPORT_DATA_FILE_GZ $REPORT_DOWNLOAD_URL

...我收到错误 URL using bad/illegal format or missing URL。但我确定我正在传递具有正确值的 REPORT_DOWNLOAD_URLREPORT_DATA_FILE_GZ 变量。

我在调用 curl 之前用 echo 显示它们以确保它们有效。

我在 URL 中也看不到任何对我来说无效的字符。

所有对 curl 的请求都是在我在浏览器中进行测试调用之前发出的,因此 amazon-advertising-api 提供的短有效期(30 秒)不会过期那个时候。

根据评论,我 运行 在 Ubuntu 20.04 下,在 WSL2 上,但大多数其他 curl 请求工作正常。

我终于根据@dave_thompson_085建议的输出找到了解决方案。我从不同响应的 header 中提取了 $REPORT_DOWNLOAD_URL,它仍然包含最后的 \r