2017-10-08 5 views
0

Je crée et configure par programmation des compartiments s3 avec boto.Erreur 403 Interdire lors de la configuration du cycle de vie pour le compartiment s3 avec boto et python

Je peux créer des seaux, des objets .. et écrire sur des objets ...

Je voudrais configurer un Lifecyle pour seau mais quand je lance le code ci-dessous j'obtenir cette exception:

boto.exception.S3ResponseError: S3ResponseError: 403 Forbidden with code SignatureDoesNotMatch.

lifecycle = Lifecycle() 

lifecycle.add_rule(
    'rulename', 
    prefix='/', 
    status='Enabled', 
    expiration=Expiration(days=1) 
) 

bucket = s3.get_bucket('mybucket') 

ce résultat de débogage peut aider à répondre.

réponse: 'HTTP/1.1 403 Forbidden \ r \ n'

tête: x-amz-request-id: tx000000000000000000027-0059db8d59-39289-default

tête: Content-Length: 196

tête: Accept-Ranges: octets

tête: Content-type: application/xml

tête: date: 9 octobre 2017 14:53:13 GMT

retraçage (le plus récent appel dernier):

Fichier "pyth.py", ligne 28, dans

bucket.configure_lifecycle(lifecycle) 

Fichier « /usr/lib/python2.7/site-packages/boto /s3/bucket.py », ligne 1366, dans

configure_lifecycle

response.status, response.reason, body) 

boto.exception.S3ResponseError: S3ResponseError: 403 Interdit

SignatureDoesNotMatch

tx000000000000000000027-0059db8d59-39289-default

39289-default-default

bucket.configure_lifecycle(lifecycle) 
+0

Il est peu probable que 'prefix = '/'' est ce que vous voulez. La conception de S3 est telle que le préfixe de tous les objets est une chaîne vide ''' ', pas' '/' 'et les clés d'objet ne commencent pas réellement par'/'. Il semble étrange que cela déclenche une erreur 'SignatureDoesNotMatch', mais il apparaît également que vous faites une requête qui ne ferait pas ce que vous voulez, même si elle a réussi. –

+0

merci pour votre réponse, mais je le tester avec un préfixe non '/' et cela ne fonctionne pas, je veux juste ajouter une configuration de cycle de vie puis je vais le faire faire ce que je veux. je teste le même code avec sas amason s3 et ça marche –

Répondre

0

Après quelques recherches, je peux dire que cette erreur est causée par la version CEPH réelle (10.2 .7 Jowel) ne prenant pas en charge les politiques de cycle de vie

$ ceph --version

version CEPH 10.2.7-27.el7cp (de e0d2d4f2fac9d95a26486121257255260bbec8d5)