【发布时间】:2014-05-04 12:42:37
【问题描述】:
我想使用 wget 从亚马逊大量下载视频文件。我用于单个文件的代码:
wget \
--no-check-certificate \
--no-proxy \
--post-data "AWSAccessKeyId=XXX&Expires=XXX&Signature=XXX" \
https://XXX.s3.amazonaws.com/MyIntroVideo.mp4
我得到ERROR 403: Forbidden. 但如果我只是转到浏览器并粘贴以下网址
https://XXX.s3.amazonaws.com/MyIntroVideo.mp4?AWSAccessKeyId=XXX&Expires=XXX&Signature=XXX
我可以查看和下载视频。我在使用 wget 时做错了什么以及为什么会出现禁止访问错误(与简单地在浏览器中访问此 url 有什么不同)?
更新:我尝试的第一件事是使用相同的 url 传递参数:
wget \
--no-check-certificate \
--no-proxy \
https://XXX.s3.amazonaws.com/MyIntroVideo.mp4?AWSAccessKeyId=XXX&Expires=XXX&Signature=XXX
但它也不起作用。
【问题讨论】:
-
你为什么使用
--post-data?那就是在幕后将 GET 请求转换为 POST 请求。您的浏览器请求是 GET。 -
@Joe 我遇到了同样的错误,这是我尝试的第一件事。代码是
wget --no-check-certificate url