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



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

我尝试过:

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

  2. 递归 wget,这在 403 时失败。

  3. 一个带有通配符的wget,这在HTTP中实际上不是一回事。

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

您可以使用 AWS 命令行界面 (CLI( 复制文件,其中之一:

aws s3 cp --recursive s3://bucket/path/* localdir

aws s3 sync s3://bucket/path/ localdir

这将需要一组 AWS 凭证,因为 API 调用经过身份验证,而您的wget方法似乎未经身份验证。如果存储桶策略授予对存储桶的公有访问权限(List 和 Get(,则凭证实际上不需要其他权限。

显然,就我而言,问题是我们在 GET 上被列入白名单而不是 LIST,如果其他人遇到这个问题,请确保您两者都有。

为了先"悄悄地"执行递归 GET,AWS CLI 会列出存储桶中的对象。这就是为什么能够通过 S3 获得单个项目但不能获得多个项目的原因。

我遇到的第二件事是,您需要有效的凭据(所以不是空字符串等(,正如@john-rotenstein在他的答案评论中指出的那样。

最新更新