L'obtention de boto.exception à la règle.S3ResponseError: S3ResponseError: 403 Forbidden lors du téléchargement de fichier
Il y a quelques autres questions à ce sujet:
boto.exception à la règle.S3ResponseError: S3ResponseError: 403 Forbidden
S3ResponseError: S3ResponseError: 403 Forbidden
S3ResponseError: 403 Forbidden à l'aide de boto
Python: Amazon S3 ne peut pas obtenir le seau: dit 403 Forbidden
Cependant, il semble que j'ai peut-être eu un problème différent (par exemple, l'horloge de l'inclinaison n'est pas un problème et j'ai déjà essayé de réglage validate=False
, et je crois que j'ai la bonne clé et la clé secrète, car tenter une fausse clé ou une clé secrète me donne les différentes erreurs). Voici mon script:
import boto
import sys
from boto.s3.key import Key
BUCKET_NAME = sys.argv[1]
AWS_ACCESS_KEY_ID = sys.argv[2]
AWS_SECRET_ACCESS_KEY = sys.argv[3]
conn = boto.connect_s3(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)
bucket = conn.get_bucket(BUCKET_NAME, validate=False)
k = Key(bucket)
k.key = 'barbaz'
k.set_contents_from_filename('/tmp/barbaz.txt')
Et le résultat:
Traceback (most recent call last):
File "/home/jonderry/sdmain/src/scripts/jenkins/upload_to_s3.py", line 16, in <module>
k.set_contents_from_filename('/tmp/barbaz.txt')
File "/usr/local/lib/python2.7/dist-packages/boto/s3/key.py", line 1360, in set_contents_from_filename
encrypt_key=encrypt_key)
File "/usr/local/lib/python2.7/dist-packages/boto/s3/key.py", line 1291, in set_contents_from_file
chunked_transfer=chunked_transfer, size=size)
File "/usr/local/lib/python2.7/dist-packages/boto/s3/key.py", line 748, in send_file
chunked_transfer=chunked_transfer, size=size)
File "/usr/local/lib/python2.7/dist-packages/boto/s3/key.py", line 949, in _send_file_internal
query_args=query_args
File "/usr/local/lib/python2.7/dist-packages/boto/s3/connection.py", line 664, in make_request
retry_handler=retry_handler
File "/usr/local/lib/python2.7/dist-packages/boto/connection.py", line 1068, in make_request
retry_handler=retry_handler)
File "/usr/local/lib/python2.7/dist-packages/boto/connection.py", line 939, in _mexe
request.body, request.headers)
File "/usr/local/lib/python2.7/dist-packages/boto/s3/key.py", line 882, in sender
response.status, response.reason, body)
boto.exception.S3ResponseError: S3ResponseError: 403 Forbidden
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>***someRequestId***</RequestId><HostId>***someHostId</HostId></Error>
Toutes les idées ce qui est le problème, ou comment diagnostiquer plus?
- avez-vous essayé de le télécharger avec le même touches à l'aide de s3cmd? juste pour être sûr que vous avez les droits d'accès à ce compartiment.
- J'ai juste essayé de
s3cmd
. J'ai aucune erreur, mais le fichier n'apparaît pas dans le seau comme prévu. J'ai lancé la commande suivante:s3cmd -c /path/to/config/file put /tmp/bazbar.txt s3://bucket-name
Vous devez vous connecter pour publier un commentaire.
On dirait que vous n'avez pas le droit d'écrire sur ce compartiment. Qu'est-ce que le seau de la politique? Pouvez-vous vous assurer que cet utilisateur IAM pouvez mettre sur ce seau?
Ce sera également se produire si votre machine est temps paramètres sont incorrects
ntp
tout de suite.vagrant reload
sur ma virtual box.sudo ntpdate -u time.apple.com
J'ai eu ce problème aussi, où j'ai essayé
validate=False
, etntpdate
, et en donnant des "Utilisateurs Authentifiés" la permission de télécharger/supprimer sur AWS. Ma résolution est probablement rare, mais juste au cas où quelqu'un d'autre a fait ce:J'ai commencé à courir mon Django app avec des informations d'identification dans mon environnement pour mon seau 'xyz'. Puis j'ai changé les informations d'identification pour télécharger à mon ami seau "abc". Il y avait une incompatibilité entre ces informations d'identification, de sorte que tout ce que j'avais à faire était de redémarrer gunicorn.