Ibm cloud 未使用python将文件上载到IBM云对象存储

Ibm cloud 未使用python将文件上载到IBM云对象存储,ibm-cloud,ibm-cloud-storage,Ibm Cloud,Ibm Cloud Storage,在空闲状态下运行代码时,它不会显示任何内容 从ibm_botocore.client导入配置 导入ibm_boto3 def上载文件(凭据、本地文件名、密钥): cos=ibm\u boto3.client(服务\u name='s3', ibm_api_key_id=凭证['got from service credential description'] ibm_服务_实例_id=凭据['got from service credential description'] ibm_auth_e

在空闲状态下运行代码时,它不会显示任何内容

从ibm_botocore.client导入配置

导入ibm_boto3

def上载文件(凭据、本地文件名、密钥):

cos=ibm\u boto3.client(服务\u name='s3', ibm_api_key_id=凭证['got from service credential description']

ibm_服务_实例_id=凭据['got from service credential description']

ibm_auth_endpoint=credentials['s3.eu gb.cloud object storage.appdomain.cloud'],//因为我所在的地区是伦敦

config=config(签名_version='oauth')

端点\u url=凭据[“”])

尝试:

例外情况除外,如e:

print(Exception, e)
其他:


您没有提供有效的
端点\u url
。从凭据中提取的值将提供有效端点的列表,但其本身无效。在中了解更多信息

编辑:啊,我明白了。您将正确的端点放在了错误的位置。只需将您在
ibm\u auth\u endpoint
中拥有的内容用于
endpoint\u url
。实际上,您可以完全省略授权端点行(SDK将默认为正确的值),也可以使用
https://iam.cloud.ibm.com/identity/token

试试这个:

导入ibm\u boto3
从ibm_botocore.client导入配置
cos=ibm\u boto3.client(服务\u name='s3',
ibm_api_key_id=“”,
ibm_服务_实例_id=“”,
config=config(签名_version='oauth'),
端点https://s3.eu-gb.cloud-object-storage.appdomain.cloud')
尝试:
res=cos.upload\u文件('D:\ibm cloud\get started python\abc.txt',
‘cloud-college-bucket0’、‘some key’)
例外情况除外,如e:
打印(例外,e)
其他:
打印('文件已上载')

您没有提供有效的
端点\u url
。从凭据中提取的值将提供有效端点的列表,但其本身无效。在中了解更多信息

编辑:啊,我明白了。您将正确的端点放在了错误的位置。只需将您在
ibm\u auth\u endpoint
中拥有的内容用于
endpoint\u url
。实际上,您可以完全省略授权端点行(SDK将默认为正确的值),也可以使用
https://iam.cloud.ibm.com/identity/token

试试这个:

导入ibm\u boto3
从ibm_botocore.client导入配置
cos=ibm\u boto3.client(服务\u name='s3',
ibm_api_key_id=“”,
ibm_服务_实例_id=“”,
config=config(签名_version='oauth'),
端点https://s3.eu-gb.cloud-object-storage.appdomain.cloud')
尝试:
res=cos.upload\u文件('D:\ibm cloud\get started python\abc.txt',
‘cloud-college-bucket0’、‘some key’)
例外情况除外,如e:
打印(例外,e)
其他:
打印('文件已上载')

ibm\u auth\u endpoint=credentials['https://iam.cloud.ibm.com/identity/token'],config=config(signature\u version='oauth'),endpoint\u url=credentials['s3.eu gb.cloud object storage.appdomain.cloud'])
//修改了它,但仍然不起作用。我在空闲时运行这个。是这样吗@Nicklange更新了答案,不确定您在定义
upload\u file
函数方面做了什么,因为它已经可用了。如果需要,您可以包装它并传递一个凭证列表,但看看这是否适合您。
ibm\u auth\u endpoint=credentials['https://iam.cloud.ibm.com/identity/token'],config=config(signature_version='oauth'),endpoint_url=credentials['s3.eu gb.cloud object storage.appdomain.cloud'])
//对其进行了修改,但仍不起作用。我在空闲时运行这个。是这样吗@Nicklange更新了答案,不确定您在定义
upload\u file
函数方面做了什么,因为它已经可用了。如果需要,您可以包装它并传递一个凭证列表,但看看这是否适合您。
print(Exception, e)
print('File Uploaded')