curl无法下载文件但是浏览器可以

curl无法下载文件但是浏览器可以

URL 示例:https://xxxxxxxxxx.s3.amazonaws.com/xxxx-xxxx-xxxx-xxxx/xxxxxxxxxxxxx/x?AWSAccessKeyId=AKIAIFKEBR4CLVTDYSLA&Signature=Kv%2B859dJ2eUmLgHdkT%2F9nUJEeRM%3D&Expires=1922517562

我尝试解码 %XX,但没有成功。

我也尝试过aws s3 cp s3://xxxxxxxxxx/xxxx-xxxx-xxxx-xxxx/xxxxxxxx... - --recursive但是Streaming currently is only compatible with non-recursive cp commands- 我需要从 S3 传输多个文件。

使用wget我得到了相同的 403。

URL 来自s3_client.generate_presigned_url

答案1

使用单引号确保任何可能的特殊字符都按字面意思理解。

[user@localhost ~]# curl 'https://xxxxxxxxxx.s3.amazonaws.com/xxxx-xxxx-xxxx-xxxx/xxxxxxxxxxxxx/x?AWSAccessKeyId=AKIAIFKEBR4CLVTDYSLA&Signature=Kv%2B859dJ2eUmLgHdkT%2F9nUJEeRM%3D&Expires=1922517562'

关键是单引号。

答案2

啊哈,我发现/当 url 在“双引号”中时,curl 可以下载未加引号的 url(而不是 %2F)。

相关内容