【发布时间】:2020-03-06 23:06:36
【问题描述】:
我正在尝试使用 boto3 连接到 OpenStack Swift。我需要列出特定存储桶中的所有对象。使用 boto2 我可以做到这一点,
parsed = urlparse.urlparse(cloud_url)
conn = boto.connect_s3(aws_access_key_id=cloud_user,
aws_secret_access_key=cloud_password,
port=parsed.port,
host=parsed.hostname,
is_secure=False,
calling_format=boto.s3.connection.OrdinaryCallingFormat())
buckets = conn.get_all_buckets()
for key in buckets:
# This prints a list of bucket names.
print key
但是在boto3中做同样的事情,
session = boto3.Session()
s3 = session.resource(service_name='s3',
use_ssl=False,
verify=False,
endpoint_url=cloud_url,
aws_access_key_id=cloud_user,
aws_secret_access_key=cloud_password)
print(list(s3.buckets.all()))
我遇到了一个错误,
调用 ListBuckets 操作时发生错误(401):未授权
我无法使用 boto3 在端点上执行任何操作,但我使用的是相同的访问密钥和密钥。
在使用boto3的时候还有什么需要设置的吗?
【问题讨论】: