Ibm cloud IBM-COS-SDK IAM令牌

Ibm cloud IBM-COS-SDK IAM令牌,ibm-cloud,object-storage,Ibm Cloud,Object Storage,我试图使用python访问我的COS服务 import ibm_boto3 from ibm_botocore.client import Config api_key = 'key' service_instance_id = 'resource-service-id' auth_endpoint = 'http://iam.bluemix.net/' service_endpoint = 'endpoint' s3 = ibm_boto3.resource('s3',

我试图使用python访问我的COS服务

import ibm_boto3
from ibm_botocore.client import Config

api_key = 'key'
service_instance_id = 'resource-service-id'
auth_endpoint = 'http://iam.bluemix.net/'
service_endpoint = 'endpoint'
s3 = ibm_boto3.resource('s3',
                  ibm_api_key_id=api_key,
                  ibm_service_instance_id=service_instance_id,
                  ibm_auth_endpoint=auth_endpoint,
                  config=Config(signature_version='oauth'),
                  endpoint_url=service_endpoint)
s3.Bucket('bucket name').download_file('object name','location where the object must be saved')
这是正确的吗?此外,在尝试执行上述代码时,编译器无法从auth_端点检索身份验证令牌。我错过什么了吗

请帮忙

提前谢谢

我包括输出供您参考

  ibm_botocore.exceptions.CredentialRetrievalError: Error when retrieving credentials from https://iam.ng.bluemix.net/oidc/token: Retrieval of tokens from server failed

我使用的是Python3.x,auth_端点应该是https

请参见此处的示例

按照自述文件中的说明,身份验证端点的末尾应该有/oidc/token,例如“”

要连接ibm云存储帐户,我们需要api密钥、服务安装id、身份验证端点和服务端点。 创建一个bucket 创建_bucket()

在云中列出存储桶 获取()

auth_endpoint = 'https://iam.bluemix.net/oidc/token'
import ibm_boto3    
from ibm_botocore.client import Config       
api_key = '......' # u can find api_key in service credentials in ibm cloud account    
service_instance_id = '.....' u can find service_instance_id in service credentials in ibm cloud account      
auth_endpoint = 'https://iam.bluemix.net/oidc/token'    
service_endpoint = 'https://s3-api.us-geo.objectstorage.softlayer.net'


cos = ibm_boto3.resource('s3',
ibm_api_key_id=api_key,
ibm_service_instance_id=service_instance_id,
ibm_auth_endpoint=auth_endpoint,
config=Config(signature_version='oauth'),
endpoint_url=service_endpoint)
    new_bucket = 'abcd1234'
    def create_bucket():
        cos.create_bucket(Bucket=new_bucket)
    return "Bucket created sucessfully"
def get_buckets():
    print("Retrieving list of buckets")
try:
    buckets = cos.buckets.all()
    for bucket in buckets:
        print("Bucket Name: {0}".format(bucket.name))
except ClientError as be:
    print("CLIENT ERROR: {0}\n".format(be))
except Exception as e:
    print("Unable to retrieve list buckets: {0}".format(e))