2015-05-18 3 views
1

Так вот мой первый тест на S3 ведра с использованием бото:мой первый тест с Бото терпит неудачу с SignatureDoesNotMatch

import boto 

user_name, access_key, secret_key = "testing-user", "xxxxxxxxxxxxx", "xxxxxxxx/xxxxxxxxxxxx/xxxxxxxxxx(xxxxx)" 
conn = boto.connect_s3(access_key, secret_key) 
buckets = conn.get_all_buckets() 

Я получаю следующее сообщение об ошибке:

Traceback (most recent call last): 
    File "test-s3.py", line 9, in <module> 
    buckets = conn.get_all_buckets() 
    File "xxxxxx/lib/python2.7/site-packages/boto/s3/connection.py", line 440, in get_all_buckets 
    response.status, response.reason, body) 
boto.exception.S3ResponseError: S3ResponseError: 403 Forbidden 
<?xml version="1.0" encoding="UTF-8"?> 
<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message><AWSAccessKeyId>AKIAJMHSZXU6MORWA5GA</AWSAccessKeyId><StringToSign>GET 


Mon, 18 May 2015 06:21:58 GMT 
/</StringToSign><SignatureProvided>c/+YJAZVInsfmd5giMQmrh81DPA=</SignatureProvided><StringToSignBytes>47 45 54 0a 0a 0a 4d 6f 6e 2c 20 31 38 20 4d 61 79 20 32 30 31 35 20 30 36 3a 32 31 3a 35 38 20 47 4d 54 0a 2f</StringToSignBytes><RequestId>5733F9C8926497E6</RequestId><HostId>FXPejeYuvZ+oV2DJLh7HBpryOh4Ve3Mmj8g8bKA2f/4dTWDHJiG8Bpir8EykLYYW1OJMhZorbIQ=</HostId></Error> 

Как я должен это исправить ?

Boto версия 2.38.0

+0

Дважды проверьте ключ доступа и секретный ключ, чтобы убедиться, что они верны. Кроме того, проверьте время на клиентском компьютере и убедитесь, что оно правильно. – garnaat

+0

Хорошо, теперь я замечаю, что предоставление неправильного пароля приводит к тому же сообщению об ошибке ... Я думал, что аутентификация была прекрасной, потому что ошибка возникает после успешного выполнения boto.connect_s3. Я понимаю, что, возможно, работает ленивая операция ... –

+0

Учетные данные не проверяются до тех пор, пока вызов не будет выполнен. – garnaat

ответ

0

Если бы тот же вопрос. В моем случае у моего сгенерированного ключа безопасности был специальный символ «+» между ними. Поэтому я удалил свой ключ и обновил новый ключ, и он работал с новым ключом без «+».

Source

0

Сегодня я увидел ошибочный ответ с SignatureDoesNotMatch во время игры вокруг API S3 локально и заменить локальный с 127.0.0.1 исправили эту проблему в моем случае.

Смежные вопросы