web-dev-qa-db-fra.com

Comment puis-je télécharger un fichier depuis un bucket S3 avec wget?

Je peux pousser du contenu dans un compartiment S3 avec mes informations d'identification via l'outil S3cmd avec s3cmd mettre le fichier de contenu S3: // test_bucket/test_file

La question est, je dois télécharger le contenu de ce compartiment dans d'autres ordinateurs qui n'ont pas installé s3cmd, MAIS ils ont wget installé.

lorsque j'essaie de télécharger du contenu de mon compartiment avec wget, j'obtiens 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 rendu public ce compartiment manuellement via la console Web Amazon AWS.

La question est: comment puis-je télécharger du contenu à partir d'un compartiment S3 avec wget? dans un fichier local txt?

25
Becks

J'ai compris ... Si vous téléchargez un fichier dans un compartiment S3 avec S3CMD avec le drapeau public --acl, alors vous pourrez télécharger le fichier depuis S3 avec wget facilement ...

Conclusion: Pour télécharger avec wget, il faut d'abord télécharger le contenu dans S3 avec s3cmd put --acl public --guess-mime-type <test_file> s3://test_bucket/test_file

vous pouvez également essayer:

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

remarquez le drapeau setacl ci-dessus. QUI RENDRA le fichier en s3 accessible au public, alors vous pouvez exécuter le wget http://s3.amazonaws.com/test_bucket/test_file

8
Becks

Vous devriez pouvoir y accéder à partir d'une URL créée comme suit:

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

Supposons maintenant que le chemin du fichier s3 soit:

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

Vous devriez pouvoir sauvegarder ce fichier avec l'url suivante:

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

24
Amar

Vous pouvez utiliser la commande:

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

AWS cli possède une commande de "présignation" que l'on peut utiliser pour obtenir une URL publique temporaire 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.

8
beevor

J'ai eu la même erreur et je l'ai résolue en ajoutant une règle entrante de groupes de sécurité:

Type HTTPS au port 443 vers mon adresse IP (car je suis le seul à y accéder) pour le sous-réseau dans lequel se trouvait mon instance.

J'espère que cela aide toute personne qui a oublié d'inclure cela

0
Hilmi Marzuqi

dans le cas où vous n'avez pas accès à l'installation du client aws sur votre machine Linux, essayez la méthode ci-dessous.

  • arrivé au seau et cliquez sur le bouton Télécharger en tant que. copiez le lien généré.
  • exécuter la commande ci-dessous

    wget --no-check-certificate --no-proxy --user = username --ask-password -O "download url"

Merci

0
Dino