【问题标题】:Wget public s3 bucketwget 公共 s3 存储桶
【发布时间】:2017-03-07 22:21:21
【问题描述】:

我想下载this public s3 bucket 中的所有文件无需 AWS 访问密钥(因为这是其他人必须遵循的教程的一部分)。每个组成文件 (example) 都可以单独下载。

【问题讨论】:

  • 您安装了aws cli?如果您有 AWS CLI,这非常简单。
  • @helloV 这不需要 API 密钥吗?
  • 什么叫 AWS API 密钥?要使用 aws cli,您需要从 AWS 获得访问密钥吗?所以你需要有一个帐户
  • @FrédéricHenri 是的。我想在没有访问密钥的情况下下载存储桶。
  • 是否可以使用来自 AWS 账户的访问密钥(例如注册一个新账户),即使存储桶所有者没有为该账户分配特定权限?这将完全在您的控制范围内,不需要其他人做任何事情。这样,您可以使用AWS Command-Line Interface (CLI)

标签: xml amazon-web-services amazon-s3 wget


【解决方案1】:

你的路并不容易:

  1. 您需要获取存储桶中的密钥(即文件)

您可以使用rest API 并提出如下请求

    curl -H "GET /?list-type=2 HTTP/1.1" \
    -H "Host: halitereplaybucket.s3.amazonaws.com" \
    -H "Date: 20161025T124500Z" \
    -H "Content-Type: text/plain" https://halitereplaybucket.s3.amazonaws.com/

这将返回 xml 格式的响应,其中包含存储桶中的内容和所有键。

  1. 您需要解析响应并提取所有键

  2. 对于每个密钥,您都可以请求下载文件

    wget 'http://halitereplaybucket.s3.amazonaws.com/{file}'
    

我了解您提到您不想使用 AWS 密钥,但使用 CLI 会很简单

aws s3 sync s3://halitereplaybucket .

【讨论】:

  • 只是为了澄清 OP...您可以将 aws s3 sync 命令与 ANY AWS 凭证一起使用,因为存储桶是公开可读的。这绝对是最简单的方法。见:AWS Command-Line Interface (CLI)
  • @JohnRotenstein 但凭据必须有效且 OP 没有。
猜你喜欢
  • 1970-01-01
  • 2016-11-16
  • 2014-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-22
  • 2020-08-21
相关资源
最近更新 更多