首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不使用python将文件上传到IBM云对象存储

不使用python将文件上传到IBM云对象存储
EN

Stack Overflow用户
提问于 2019-10-01 04:17:37
回答 1查看 611关注 0票数 0

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

从ibm_botocore.client导入配置

导入ibm_boto3

定义密钥(credentials,local_file_name,upload_file):

cos = ibm_boto3.client( service _name='s3',ibm_api_key_id=credentials‘’got from service credential‘,

ibm_ service _instance_id=凭据‘从服务凭据描述中获取’,

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

config=Config(signature_version='oauth'),

endpoint_url=credentials['https://control.cloud-object-storage.cloud.ibm.com/v2/endpoints'])

尝试:

代码语言:javascript
复制
res=cos.upload_file(Filename='D:\ibm-cloud\get-started-python\abc.txt', 

Bucket=credentials['cloud-college-bucket0'],Key=key)

除了e以外的例外:

代码语言:javascript
复制
print(Exception, e)

否则:

代码语言:javascript
复制
print('File Uploaded')
EN

回答 1

Stack Overflow用户

发布于 2019-10-01 04:37:38

您没有提供有效的endpoint_url。从凭据中提取的值将提供有效端点的列表,但本身并不有效。在docs中了解更多信息。

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

试试这个:

代码语言:javascript
复制
import ibm_boto3
from ibm_botocore.client import Config

cos = ibm_boto3.client(service_name='s3',
                       ibm_api_key_id='<some API key>',
                       ibm_service_instance_id='<got from service credential description>',
                       config=Config(signature_version='oauth'),
                       endpoint_url='https://s3.eu-gb.cloud-object-storage.appdomain.cloud')

try:
    res = cos.upload_file('D:\ibm-cloud\get-started-python\abc.txt',
                      'cloud-college-bucket0', 'some-key')
except Exception as e:
    print(Exception, e)
else:
    print('File Uploaded')
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58174776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档