从IP白名单S3存储桶中递归获取?

时间:2018-10-01 21:45:29

标签: amazon-web-services amazon-s3 command-line

我有一个具有IP白名单策略的存储桶,我希望能够s3 cp或以递归的方式获取该存储桶的“子文件夹”中的所有内容。有没有办法做到这一点? wget可以在单个文件上正常工作。

我尝试过的事情:

  1. 未配置任何配置文件的AWS cp依赖于IP白名单,此操作失败并显示403。

  2. 一个递归wget,以403失败。

  3. 带有通配符的wget,这实际上不是HTTP中的东西。

IP白名单非常有用,最好获得整个“文件夹”而不是单个对象。

2 个答案:

答案 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在对答案的评论中指出的那样。