我是研究小组的团队成员,我目前的研究需要使用Openstack Swift。 我们安装了Openstack Juno,效果很好。对于安装Packstack使用过。 swift服务也安装在服务器上,它的工作原理!我们试图从控制台创建容器访问它,上传文件等一切正常。 所以我们进一步尝试使用其API访问swift。在这里,我们遇到了身份验证阶段的问题。
下面你可以看到我用来检查我是否可以连接到Swift的简单python代码。
import swiftclient
import keystoneclient
conn = swiftclient.Connection(
authurl='http://*[server ip]*:5000/v2.0/',
user='account_name:username',
key='serverpassword',
auth_version="2.0").get_auth()[0]
for container in conn.get_account()[1]:
print container['name']
在客户端计算机上执行cod之前,我已经安装了以下必需的软件包。
sudo aptitude install python-pip
sudo pip install python-swiftclient
sudo pip install python-keystoneclient
在这里,您可以看到执行代码时出现的错误。
Traceback (most recent call last):
File "new.py", line 15, in <module>
auth_version="2.0").get_auth()[0]
File "/usr/local/lib/python2.7/dist-packages/swiftclient/client.py", line 1332, in get_auth
timeout=self.timeout)
File "/usr/local/lib/python2.7/dist-packages/swiftclient/client.py", line 463, in get_auth
auth_version=auth_version)
File "/usr/local/lib/python2.7/dist-packages/swiftclient/client.py", line 366, in get_auth_keystone
ksclient, exceptions = _import_keystone_client(auth_version)
File "/usr/local/lib/python2.7/dist-packages/swiftclient/client.py", line 351, in _import_keystone_client
variables to be set or overridden with -A, -U, or -K.''')
swiftclient.exceptions.ClientException:
Auth versions 2.0 and 3 require python-keystoneclient, install it or use Auth
version 1.0 which requires ST_AUTH, ST_USER, and ST_KEY environment
variables to be set or overridden with -A, -U, or -K.
我试图找到在互联网上搜索的解决方案,但我没有成功。