При выполнении следующего кода:
import boto3
BUCKET = 'bwd-plfb'
s3 = boto3.client('s3',use_ssl = False)
resp = s3.list_objects_v2(Bucket = BUCKET )
s3.download_file(BUCKET,'20171018/OK/OK_All.zip','test.zip')
Я получаю следующую ошибку:
botocore.exceptions.ClientError: An error occurred
(SignatureDoesNotMatch) when calling the GetObject operation: The request
signature we calculated does not match the signature you provided. Check
your key and signing method.
Что я пробовал до сих пор:
- Двойная проверка идентификатора ключа доступа и секретного ключа доступа, настроенного в aws cli (запуск aws configure в командной строке) - они верны.
- Попытка составить список объектов корзины с помощью boto3 - успешно сработала. Кажется, проблема возникает при попытке загрузить файлы.
- Использование подключаемого модуля Chrome для просмотра содержимого корзины и загрузки файлов: подключаемый модуль Chrome Работает успешно.
Интересно то, что загрузка работает для некоторых файлов, но не для всех. Я загрузил файл, который раньше работал до 20 раз подряд, чтобы проверить, была ли ошибка периодической. Сработало все 20 раз. Я сделал то же самое с файлом, который раньше не работал и не загружался ни разу из 20.
Я видел несколько других сообщений в stackoverflow, в которых говорилось, что ключ api и ключ доступа могут быть неправильными. Однако я не верю, что это было бы так, если бы я мог перечислять объекты и загружать файлы (тот, который работал и не работал через boto3) с помощью плагина Chrome S3.
Есть ли у кого-нибудь предложения по поводу того, в чем может быть проблема?
Спасибо
use_ssl=False
? - person hjpotter92   schedule 27.12.2017