2013-08-14 2 views
17

Je peux pousser un contenu à un seau S3 avec mes lettres de créance par outil s3cmd avec s3cmd mis contentfile S3: // test_bucket/test_fileComment télécharger un fichier à partir d'un compartiment S3 avec wget?

Question est, je suis obligé de télécharger le contenu de ce seau dans d'autres ordinateurs don N'ont pas installé s3cmd sur eux, mais ils ont installé wget.

quand je tente de télécharger un contenu de mon seau avec wget je reçois ceci:

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. 

J'ai fait manuellement ce public seau via la console Web Amazon AWS. Question: Comment puis-je télécharger du contenu à partir d'un compartiment S3 avec wget? dans un fichier local txt?

Répondre

7

Got it ... Si vous téléchargez un fichier dans un seau S3 avec s3cmd avec le drapeau du public --acl alors on doit être en mesure de télécharger le fichier de S3 avec wget facilement ...

Conclusion: pour télécharger avec wget, d'abord on a besoin de télécharger le contenu dans S3 avec s3cmd put --acl public --guess-mime-type <test_file> s3://test_bucket/test_file

Sinon, vous pouvez essayer:

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

avis le drapeau setacl ci-dessus. Qui fixeront le fichier dans accessible s3 public vous pouvez alors exécuter le wget http://s3.amazonaws.com/test_bucket/test_file

21

Vous devriez être en mesure d'y accéder à partir d'une URL créée comme suit:

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

Maintenant, supposons que votre chemin de fichier s3 est:

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

Vous devriez être en mesure de wget ce fichier avec l'URL suivant:

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

+0

Notez que vous utilisez un protocole HTTP et qu'une url HTTPS me vient de la console de gestion Amazon ... Comment le HTTPS change-t-il les choses? – Becks

13

Vous pouvez utiliser la commande:

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

Cela a fonctionné pour moi grâce – iamjonesy

+0

Fonctionne bien! Pas besoin d'installer s3cmd ou autre CLI :) –

3

AWS cli dispose d'une commande « preSign » que l'on peut utiliser pour obtenir un partenariat public temporaire URL vers une ressource s3 privée.

aws s3 presign s3://private_resource 

Vous pouvez ensuite utiliser wget pour télécharger la ressource à l'aide de l'URL prédéfinie.

Questions connexes