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?
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
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
Vous pouvez utiliser la commande:
wget --no-check-certificate --no-proxy 'http://your_bucket.s3.amazonaws.com/my-file.jpg'
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.
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
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.
exécuter la commande ci-dessous
wget --no-check-certificate --no-proxy --user = username --ask-password -O "download url"
Merci