2016-10-25 102 views
0

我想下載this public s3 bucket中的所有文件,但沒有AWS訪問密鑰(因爲這是其他人必須遵循的教程的一部分)。每個組成文件(example)都可以單獨下載。Wget public s3 bucket

+0

你有'aws cli'安裝?如果您擁有AWS CLI,這非常簡單。 – helloV

+0

@helloV不需要API密鑰嗎? – mntruell

+0

你叫什麼AWS API密鑰?要使用aws cli,您需要從AWS獲得訪問密鑰?所以你需要有一個帳戶 –

回答

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格式的響應,其中包含內容和存儲桶中的所有密鑰。

  • 您需要解析響應,並提取所有按鍵

  • 爲每個鍵,你可以下載該文件的請求

    wget 'http://halitereplaybucket.s3.amazonaws.com/{file}' 
    
  • 我知道你提到你不想使用AWS關鍵,但使用CLI將它作爲簡單

    aws s3 sync s3://halitereplaybucket . 
    
    +0

    只是爲了澄清OP ...您可以使用帶有* ANY * AWS憑證的'aws s3 sync'命令,因爲存儲桶是公共可讀的。這絕對是最簡單的方法。請參閱:[AWS命令行界面(CLI)](http://aws.amazon.com/cli/) –

    +0

    @JohnRotenstein,但證書必須有效,並且OP沒有證書。 – helloV