ファイルをIBMオブジェクトストレージにpythonで保存しようとするといくつか問題があります。私はbluemixアカウントから以下の資格情報をコピーしました(詳細は以下省略)。IBM Object Storage with Python
credentials = {
"auth_url": "https://identity.open.softlayer.com",
"project": <my project>,
"projectId": <my project id>,
"region": "dallas",
"userId": <user id>,
"username": <user name>,
"password": <password>,
"domainId": <domain Id>,
"domainName": <domain Name>,
"role": <role>
}
そして以下は、私はIOインポートからコンテナ にファイルを保存しようとして使用してきたPythonスクリプトではStringIO インポート要求 輸入JSON
私は経由でトークンを取得するようだurl1 = ''.join(['https://identity.open.softlayer.com', '/v3/auth/tokens'])
data = {'auth': {'identity': {'methods': ['password'],
'password': {'user': {'name': credentials['username'],'domain': {'id': credentials['domainId']},
'password': credentials['password']}}}}}
headers1 = {'Content-Type': 'application/json'}
resp1 = requests.post(url=url1, data=json.dumps(data), headers=headers1)
resp1_body = resp1.json()
for e1 in resp1_body['token']['catalog']:
if(e1['type']=='object-store'):
for e2 in e1['endpoints']:
if(e2['interface']=='public'and e2['region']=='dallas'):
url2 = ''.join([e2['url'],'/', container, '/', filename])
s_subject_token = resp1.headers['x-subject-token']
headers2 = {'X-Auth-Token': s_subject_token, 'accept': 'application/json'}
print(url2)
resp2 = requests.post(url=url2, data=filename, headers=headers2)
print(resp2.text)
return StringIO(resp2.text)
filename = "sample.png"<br>
post_object_storage_file("democontainer", filename)
resp1と取得したurl2。しかし、私はresp2.textを印刷すると '禁止された'応答が得られます。私はそのストレージコンテナの管理者ですので、なぜ私はこれにアクセスできないのかわかりません。
私はIBMのオブジェクト・ストレージを初めて使用しているので、アドバイスを参考にしてください。
ありがとうございました。
エラーを貼り付けることができますか? – RiyaMRoy
https://dal.objectstorage.open.softlayer.com/v1/AUTH_1231413123d74ab89848eb8504e271bd/democontainer/sample.png
禁止
のアクセスは、このリソースに拒否されました。
<_io.StringIO at 0x7f6a3a0539d8> – HarrisこれはOpenStack Swiftベースのオブジェクトストレージで、Bluemix Servicesで利用でき、S3 APIを使用するCloud Object Storageではなく、Bluemix Infrastructureから利用できますか? –