2013-08-14 5 views
17

Ich kann einige Inhalte auf einen S3 Eimer mit meinen Anmeldeinformationen über s3cmd Werkzeug mit s3cmd put contentfile S3 drücken: // test_bucket/test_fileWie kann ich eine Datei aus einem S3-Bucket mit wget herunterladen?

Frage, Ich bin auf den Inhalt von diesem Eimer in andere Computern erforderlich herunterladen, den don habe s3cmd nicht installiert, aber sie haben wget installiert.

wenn ich versuche, einige Inhalte von meinem Eimer mit wget zum Download ich diese:

https://s3.amazonaws.com/test_bucket/test_file 
--2013-08-14 18:17:40-- `https`://s3.amazonaws.com/test_bucket/test_file 
Resolving s3.amazonaws.com (s3.amazonaws.com)... [ip_here] 
Connecting to s3.amazonaws.com (s3.amazonaws.com)|ip_here|:port... connected. 
HTTP request sent, awaiting response... 403 Forbidden 
`2013`-08-14 18:17:40 ERROR 403: Forbidden. 

Ich habe manuell diesen Eimer Öffentlichkeit durch die Amazon AWS Webkonsole gemacht.

Frage ist: Wie kann ich Inhalte aus einem S3-Bucket mit wget herunterladen? in eine txt lokale Datei?

Antwort

7

Verstanden ... Wenn Sie eine Datei in einem S3 Eimer mit s3cmd mit der --acl öffentlichen Flagge laden dann muss man in der Lage sein, die Datei von S3 mit wget leicht ...

Fazit zum Download: In um mit wget herunterzuladen, muss zunächst ein mit s3cmd put --acl public --guess-mime-type <test_file> s3://test_bucket/test_file

alternativ den Inhalt in S3 laden, können Sie versuchen:

s3cmd setacl --acl-public --guess-mime-type s3://test_bucket/test_file 

Mitteilung der setacl Fahne oben. Das wird die Datei in s3 zugänglich eingestellt öffentlich dann können Sie die wget http://s3.amazonaws.com/test_bucket/test_file

21

Sie sollten in der Lage sein, es von einem wie folgt erstellt URL zuzugreifen:

http://{bucket-name}.s3.amazonaws.com/<path-to-file>

Nun, sagen Sie Ihren s3 Dateipfad ist:

s3://test-bucket/test-folder/test-file.txt

Sie sollten in der Lage sein, wget diese Datei mit folgender URL:

http://test-bucket.s3.amazonaws.com/test-folder/test-file.txt

+0

Beachten Sie, dass Sie ein HTTP-Protokoll verwenden und mir eine HTTPS-URL von der Amazon Management-Konsole gegeben wird ... Wie ändert sich das HTTPS? – Becks

13

ausführen Sie den Befehl verwenden können:

wget --no-check-certificate --no-proxy 'http://your_bucket.s3.amazonaws.com/my-file.jpg' 
+0

Dies funktionierte für mich dank – iamjonesy

+0

Funktioniert super! Keine Notwendigkeit, s3cmd oder andere CLI zu installieren :) –

3

AWS cli hat einen ‚preSign‘ Befehl, dass man verwenden kann eine temporäre Öffentlichkeit zu erhalten URL zu einer privaten s3-Ressource.

aws s3 presign s3://private_resource 

Sie können dann mithilfe von wget die Ressource mithilfe der vordefinierten URL herunterladen.