我有以下网址:
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”替换了几个元素,其中有您希望在签名或凭据中出现的正常字符。
如果我将此网址复制并粘贴到我的浏览器中,我可以按照我的预期下载该文件。当尝试使用以下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_URL
andREPORT_DATA_FILE_GZ
变量。
我echo
在通话之前显示它们curl
以确保它们有效。
我在 URL 中也看不到任何对我无效的字符。
所有 curl 请求都是在我在浏览器中进行测试调用之前发出的,因此 amazon-advertising-api 提供的短暂有效期(30 秒)到那时不会过期。
根据评论,我在 WSL2 上的 Ubuntu 20.04 下运行它,但大多数其他 curl 请求都运行良好。