С помощью boto
я мог подключаться к общедоступным корзинам S3 без учетных данных, передавая аргумент ключевого слова anon=
.
s3 = boto.connect_s3(anon=True)
Возможно ли это с boto3
?
С помощью boto
я мог подключаться к общедоступным корзинам S3 без учетных данных, передавая аргумент ключевого слова anon=
.
s3 = boto.connect_s3(anon=True)
Возможно ли это с boto3
?
Да. Ваши учетные данные используются для подписи всех запросов, которые вы отправляете, поэтому вам нужно настроить клиент так, чтобы он вообще не выполнял шаг подписи. Вы можете сделать это следующим образом:
import boto3
from botocore import UNSIGNED
from botocore.client import Config
s3 = boto3.client('s3', config=Config(signature_version=UNSIGNED))
# Use the client
Отключить подпись
import boto3
from botocore.handlers import disable_signing
resource = boto3.resource('s3')
resource.meta.client.meta.events.register('choose-signer.s3.*', disable_signing)
Ни один из них не работает с текущей версией boto3 (1.9.168). Этот хак (любезно предоставленный неисправленной проблемой github на botocore), похоже, помогает:
client = boto3.client('s3', aws_access_key_id='', aws_secret_access_key='')
client._request_signer.sign = (lambda *args, **kwargs: None)