Подключение к S3-совместимому хранилищу с помощью boto3 - PullRequest
0 голосов
/ 16 марта 2020

Я изо всех сил пытаюсь заставить boto3 подключиться к S3-совместимому ресурсу, я не могу найти достойного примера этого на страницах boto3, поэтому моя попытка ниже (взято из https://docs.oracle.com/cd/E91275_01/html/E96223/gsyqi.html)

Я получаю Traceback (полный вывод ниже) AttributeError: 'str' object has no attribute 'get'

import logging
import boto3
from mycreds.creds import Mycreds

# Pull in my config
access_key = Mycreds.access_key
secret_key = Mycreds.secret_key
endpoint = Mycreds.endpoint

b3_session = boto3.Session(aws_access_key_id=access_key,
                           aws_secret_access_key=secret_key,
                           region_name='us-east-1')

b3_client = b3_session.client('s3', endpoint_url=endpoint)

bucket = b3_client.create_bucket(Bucket='somenewbucket')

Traceback:

Traceback (most recent call last):
  File "/home/mattb/Documents/code/play_area/boto3_s3test/s3_test.py", line 14, in <module>
    b3_client = b3_session.client('s3', endpoint_url=endpoint)
  File "/home/mattb/.local/share/virtualenvs/boto3_s3test-aHfp37jc/lib/python3.7/site-packages/boto3/session.py", line 263, in client
    aws_session_token=aws_session_token, config=config)
  File "/home/mattb/.local/share/virtualenvs/boto3_s3test-aHfp37jc/lib/python3.7/site-packages/botocore/session.py", line 835, in create_client
    client_config=config, api_version=api_version)
  File "/home/mattb/.local/share/virtualenvs/boto3_s3test-aHfp37jc/lib/python3.7/site-packages/botocore/client.py", line 85, in create_client
    verify, credentials, scoped_config, client_config, endpoint_bridge)
  File "/home/mattb/.local/share/virtualenvs/boto3_s3test-aHfp37jc/lib/python3.7/site-packages/botocore/client.py", line 287, in _get_client_args
    verify, credentials, scoped_config, client_config, endpoint_bridge)
  File "/home/mattb/.local/share/virtualenvs/boto3_s3test-aHfp37jc/lib/python3.7/site-packages/botocore/args.py", line 73, in get_client_args
    endpoint_url, is_secure, scoped_config)
  File "/home/mattb/.local/share/virtualenvs/boto3_s3test-aHfp37jc/lib/python3.7/site-packages/botocore/args.py", line 153, in compute_client_args
    s3_config=s3_config,
  File "/home/mattb/.local/share/virtualenvs/boto3_s3test-aHfp37jc/lib/python3.7/site-packages/botocore/args.py", line 215, in _compute_endpoint_config
    s3_config=s3_config, **resolve_endpoint_kwargs)
  File "/home/mattb/.local/share/virtualenvs/boto3_s3test-aHfp37jc/lib/python3.7/site-packages/botocore/args.py", line 228, in _compute_s3_endpoint_config
    endpoint_config, resolve_endpoint_kwargs['endpoint_bridge'])
  File "/home/mattb/.local/share/virtualenvs/boto3_s3test-aHfp37jc/lib/python3.7/site-packages/botocore/args.py", line 261, in _set_region_if_custom_s3_endpoint
    endpoint = endpoint_bridge.resolve('s3')
  File "/home/mattb/.local/share/virtualenvs/boto3_s3test-aHfp37jc/lib/python3.7/site-packages/botocore/client.py", line 364, in resolve
    resolved, service_name, region_name, endpoint_url, is_secure)
  File "/home/mattb/.local/share/virtualenvs/boto3_s3test-aHfp37jc/lib/python3.7/site-packages/botocore/client.py", line 382, in _create_endpoint
    if self._is_s3_dualstack_mode(service_name):
  File "/home/mattb/.local/share/virtualenvs/boto3_s3test-aHfp37jc/lib/python3.7/site-packages/botocore/client.py", line 414, in _is_s3_dualstack_mode
    enabled = self.scoped_config.get('s3', {}).get(
AttributeError: 'str' object has no attribute 'get'

1 Ответ

0 голосов
/ 02 апреля 2020

На случай, если кто-то еще столкнется с той же проблемой, я в конце концов отследил ее до файла ~ / .aws / config, который, как только я удалил его, устранил проблему.

К сожалению, я должен был переместил, а не удалил файл, поэтому я не смог диагностировать его дальше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...