簡體   English   中英

IBM Cloud Object 存儲連接問題 Watson studio Python 筆記本

[英]IBM Cloud Object Storage Connection issue Watson studio Python notebook

我一直在嘗試讓我的 Python 筆記本在 Watson Studio 中連接到我的雲存儲並從我的雲存儲中檢索數據幾個小時,並閱讀了許多教程,但不知道為什么它不起作用,代碼如下:

credentials = {
    'BUCKET': 'openai-data',
    'URL': 'https://s3.private.us-east.cloud-object-storage.appdomain.cloud',
    'SECRET_KEY': '',
    'API_KEY': '*********************', #this key has been *d out but the value is there in my code
    'RESOURCE_INSTANCE_ID': 'crn:v1:bluemix:public:cloud-object-storage:global:a/e448d36ef93f4d3ca55077db903d3461:51ce6e50-4e92-41d0-b002-5023e815cadc::',
    'FILE': 'test_Y_smallsample.h5',
    'ACCESS_KEY': ''
}


from ibm_botocore.client import Config
import ibm_boto3
cos = ibm_boto3.resource(service_name='s3',
    ibm_api_key_id=credentials['API_KEY'],
    ibm_service_instance_id=credentials['RESOURCE_INSTANCE_ID'],
    ibm_auth_endpoint='https://iam.bluemix.net/oidc/token',
    config=Config(signature_version='oauth'),
    endpoint_url=credentials['URL'])

files = cos.Bucket('openai-data').objects.all()
for file in files:
    print("Item: {0} ({1} bytes).".format(file.key, file.size))

這會產生錯誤:CredentialRetrievalError:從https://iam.bluemix.net/oidc/token檢索憑據時出錯:HttpCode(400) - 從服務器檢索令牌失敗。

如果我對 ibm_auth_endpoint 使用“ https://iam.cloud.ibm.com/identity/token ”,則結果相同

我也嘗試過與 HMAC 憑據的單獨連接,但找不到任何教程來展示如何合並這些憑據......

請幫忙!

謝謝

這可能是由於使用了無效的 apikey 造成的。 要獲取 apikey 值,go 到存儲實例的“服務憑據”菜單,然后單擊“WDP-項目管理-...”的“查看憑據”並查看“apikey”字段中的值。

這個問題好像不是endpoint_url無效引起的,反正要獲取endpoint_url,go到Buckets > 'your bucket' > Configuration,然后根據需要選擇一個endpoint(Private/Public/Direct)。 填寫字段時,請使用“https://”。

請參閱下面的代碼片段以直接從 cvs 文件中獲取數據:

import pandas as pd 
import ibm_boto3 
from ibm_botocore.client import Config 
cos = ibm_boto3.client(service_name='s3',
    ibm_api_key_id='<apikey>', 
    ibm_auth_endpoint="https://iam.ng.bluemix.net/oidc/token",
    config=Config(signature_version='oauth'),
    endpoint_url="<endpoint>")
obj = cos.get_object(Bucket='<bucket_name>', Key='<csv_file>')
df = pd.read_csv(obj['Body'])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM