我有一个具有IP白名单策略的存储桶,我希望能够s3 cp或以递归的方式获取该存储桶的“子文件夹”中的所有内容。有没有办法做到这一点? wget可以在单个文件上正常工作。
我尝试过的事情:
未配置任何配置文件的AWS cp依赖于IP白名单,此操作失败并显示403。
一个递归wget,以403失败。
带有通配符的wget,这实际上不是HTTP中的东西。
IP白名单非常有用,最好获得整个“文件夹”而不是单个对象。
答案 0 :(得分:0)
您可以使用AWS Command-Line Interface (CLI)复制文件,或者:
aws s3 cp --recursive s3://bucket/path/* localdir
或
aws s3 sync s3://bucket/path/ localdir
这将需要一组AWS凭证,因为API调用已通过身份验证,而您的wget
方法似乎未通过身份验证。如果存储桶策略正在授予存储桶上的公共访问权限(列表和获取),则凭据实际上不需要其他权限。
答案 1 :(得分:0)
显然,在我的情况下,问题是我们在GET上列出了白名单,但在LIST上没有,如果其他人遇到此问题,请确保您同时拥有这两个问题。
为了执行递归GET,AWS CLI首先“安静地”列出存储桶中的对象。这就是为什么能够通过S3获取单个项目但无法获取多个的原因。
我遇到的第二件事是,您需要有效的凭据(而不是空字符串等),就像@ john-rotenstein在对答案的评论中指出的那样。