gpt4 book ai didi

python - 使用 boto3 连接到 S3 兼容存储

转载 作者:行者123 更新时间:2023-12-05 05:05:03 25 4
gpt4 key购买 nike

我正在努力让 boto3 连接到 S3 兼容资源,我似乎无法在 boto3 页面上找到一个像样的例子,所以我的尝试如下(取自 https://docs.oracle.com/cd/E91275_01/html/E96223/gsyqi.html)

我得到了回溯(下面的完整输出)AttributeError: 'str' 对象没有属性 '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 (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'

最佳答案

以防万一其他人遇到同样的问题,我最终将其追踪到 ~/.aws/config 文件,一旦我删除它就解决了问题。

不幸的是,我应该移动而不是删除文件,所以我无法进一步诊断它。

关于python - 使用 boto3 连接到 S3 兼容存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60709034/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com